如何用python爬数据
今天小编给大家分享一下如何用python爬数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
小编先放上一个示例代码(以当当好评榜 TOP500 为例),以下介绍基于该代码进行介绍。
importrequests#引入request库进行页面请求fromrequests.exceptionsimportRequestException#引入RequestException来捕获request可能出现的异常importre#引入re库来进行正则匹配importjson#引入json来进行json格式转化defget(url):#将请求方法封装,方便使用try语句捕捉异常try:response=requests.get(url)#使用request的get方法获取响应流ifresponse.status_code==200:#处理响应流,如果不是200响应,则返回Nonereturnresponse.text#将响应流以文本方式返回returnNoneexceptRequestException:returnNonedefparse(text):#将正则匹配方法封装,使代码模块化pattern=re.compile('<li>.*?list_num.*?>(.*?)</div>.*?pic.*?src="(.*?)".*?/></a>.*?name"><a.*?title="(''.*?)">.*?tuijian">(.*?)</span>.*?publisher_info.*?title="(.*?)".*?biaosheng.*?<span>(''.*?)</span>.*?</li>',re.S)#设定正则表达式匹配规则items=re.findall(pattern,text)#使用正则匹配对传入的text文本进行正则匹配,并将匹配成功的结果保存在itemsreturnitems#将匹配的结果返回if__name__=="__main__":target_url="http://bang.dangdang.com/books/fivestars/"#目标爬取的页面urlhtml=get(target_url)#使用封装好的get方法将整个目标HTML页面爬取下来foriteminparse(html):#使用封装好的正则匹配方法对目标HTML进行正则匹配,然后用一个循环将结果进行处理print(item)#接下来是将结果写入txt文件的操作withopen('book.txt','a',encoding='UTF-8')asf:f.write(json.dumps(item,ensure_ascii=False)+'\n')#使用json库的dumps方法将列表对象转变成json对象(字符串),然后写入文本f.close()
爬虫开发第一步:网页分析
爬虫开发的第一步,是对目标网页进行分析,首先要知道你需要的目标数据在哪里,这里使用开发者工具查看整个页面结构,发现目标数据在一个 <li>
元素中,所以开发思路是,将这个页面的数据获取下来,然后获取数据中的 <li>
元素(里面的有用的数据)。
爬虫开发第二步,数据爬取
经过第一步的分析,我们已经大致有了爬虫的思路了,所以现在要做的,就是把这个页面爬取下来。这时候 request 库出场了。使用 request 的 get()
方法,可以将目标页面的 html 爬下来。得到了目标页面的 html(代码中将其存储在 html 字符串中)。就可以进行接下来的操作了。
爬虫开发第三步,数据处理
使用正则表达式,匹配代码中的目标数据(也就是之前分析的li元素里的有用的数据)。并将其放进一个 items
列表中。完成到这一步,数据的爬取分析也就基本结束了。只要将爬取的结果进行保存就可以了。
爬虫开发第四步,数据保存
小编这里使用python自带的文件读写函数,将数据以json的格式保存在一个叫 book.txt
的文件中。
以上就是“如何用python爬数据”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。