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