数据分析学习笔记(2)——爬取拉勾网数据分析师岗位
本次笔记主要记录了本人利用python编写爬虫对拉勾网的数据分析师岗进行爬取,因为打算从事数据分析师这个职业,所以想对这个职业进行一个数据分析。
首先进行数据分析第一步是要获取数据,我选择了从拉勾网进行数据爬取。本次运用到的知识主要是python, html, json。
先进入拉勾网并用Chrome浏览器的开发者工具对页面进行观察。
红色区域即是当前元素所处位置观察发现其实标签内部数据并不是特别完整,很多数据都被藏在了元素内部,这样想通过Xpath提取会变得非常麻烦和困难,因此尝试其他方法,拉勾网具有反爬技术,为了防止盗链,采用了json页面传输数据,因此我选择去采集json数据。
再进行一次搜索 利用开发者工具找到json页面 检查json数据发现有完整json数据,因此开始编写爬虫代码对数据进行爬取。
首先要设置要访问的url网址和请求头文件。url网址是要爬取的页面域名,请求头文件则是访问网站时访问者的一些信息,例如用户名,所用浏览器,访问源头等,如果不设置头文件,则很大程度会因为访问频度过高被当作机器人而封杀ip。
先通过开发者工具获取url地址。
随后再通过开发者工具获取请求头文件Request Headers。其中主要是获取User-Agent, Referer 和Cookie。
将以上内容分别写入代码中。
设置url和请求头文件在发送请求的时候有两种发送参数方式,一种是get,另一种是post。post会以表格发送的方式发送给响应端,无法直接在链接中赋值,因此需要设置一个字典来作为表格数据发送给响应端。从开发者工具中可以看到表格内部的结构和信息。
因此构建一个字典用来存储参数数据。
这里使用request包来发送请求。
发送请求后会得到一个response,同时为了避免编码错误要先将response的编码设置为utf-8。然后利用json包用的json.loads()方法将取得的response转化为字典格式。根据先前对json结构分析,要进入到嵌套字典的最内部才能取得一个result的list。
在取出list以后将值返给函数并进入数据提取阶段。
设置一个字典用以存储所要保存的值。
随后开始批量提取并存储数据。
在主函数中对每一页进行上述操作的循环。
通过改变data中pn的值来进行翻页,同时在循环结束后,先将字典转为DataFrame格式,再用DataFrame中的内置方法进行处理并导出为csv格式文件。最终获取的文件可以用excel打开后效果如下。
由于编码为utf-8因此Excel无法直接读取,在此将文件格式转为ansi以后,再次打开如下。
本章结束,下一章将讲解如何用Excel进行数据清洗和数据分析。