爬虫之lxml+requests+json+xlwt

最近在学习努力Python,想从爬虫入手,把一些学习的心得和一个小爬虫与大家分享一下:



爬虫主要分为4步:

1:分析URL地址的规律和总页数,构造URL地址的列表

2:发送请求,获取响应

3:从响应中提取所需数据,再对数据进行清洗

4:保存数据:文本,表格等


爬取猫眼

本文中主要是对猫眼电影Top100进行爬取,用到的模块主要有:

requests请求库,主要用来发送请求,获取响应。

lxml解析库,主要是将得到的响应或者HTML页面信息进行解析,获取我们想要的数据信息。

json,一种看起来像Python类型(列表或者字典)的字符串,它与Python类型的数据可以相互转换:json.loads()将json字符串转换成Python类型,json.dumps()反之。

xlwt库,主要是将获取到的数据存入Excel表格中使用。



下图为导入的所有用到的库:

需要从lxml库中导入etree模块

图片发自App


首先定义一个类:MaoyanSpider

初始化url和请求头headers;通过观察发现,10个url地址中offset=0,10,20.......90,有规律的10个URL地址。

图片发自App


定义一个方法get_url_list:通过上面发现的规律,通过formate()方法,利用for的列表生成式构造url_list,同时返回url_list。

爬虫之lxml+requests+json+xlwt_第1张图片
图片发自App


定义一个方法parse_url,传入参数url,发送请求,获取响应。get方法中带上headers,伪装浏览器。在响应response中需要指定编码UTF-8,结果中的中文才能显示出来。

爬虫之lxml+requests+json+xlwt_第2张图片
图片发自App


获取数据部分:传入参数html_str,利用etree的HTML方法,得到html信息,再利用xpath方法获取我们所需的3个信息:名字,演员和时间。xpath的使用需要下载插件:xpath-helper,路径可以自己写也可以在浏览器中进行复制。提示:有时候浏览中复制的太繁琐或者不准,自己需要修改。利用插件可以检查路径是否正确。最后保存在content_list列表中并返回。

爬虫之lxml+requests+json+xlwt_第3张图片
图片发自App


保存文本数据:定义一个方法:save_content_list,"a"表示追加模式,同时要指定编码格式;json.dumps()序列化时,对中文默认采用的是ASCII码,要想显示真正的中文需要指定ensure_ascii=False。

爬虫之lxml+requests+json+xlwt_第4张图片
图片发自App


保存到Excel表格:主要用的是xlwt库

爬虫之lxml+requests+json+xlwt_第5张图片
图片发自App


main函数:主要是将前面的几个方法进行调用,最后定义一个类的实例来运行。

需要注意的是:content_list中是每一页的数据,以列表的形式存放;需要将10页全部的content_list放到一个content_lists中,利用extend方法进行追加,执行完10次追加以后再执行一次save_to_excel的方法,保存到表格中。

爬虫之lxml+requests+json+xlwt_第6张图片
图片发自App

PS:Python和爬虫都在努地学习中!往数据分析方向走!请多指教!Python❤❤❤

你可能感兴趣的:(爬虫之lxml+requests+json+xlwt)