Python爬取拉勾网数据(破解反爬虫机制)

人生苦短, 我学 Python!

这篇文章主要记录一下我学习 Python 爬虫的一个小例子, 是爬取的拉勾网的数据.

1.准备

配置 Python 环境什么的就不说了, 网上教程很多, 自行解决.

2.扒源码

先打开[拉勾网][1]的网页. 我们要爬取这部分的数据, 即搜索结果列表数据:

搜索接口列表

检查源码, 打开如下图所示位置:

代码检查工具

然后发现,这部分数据是我们所要爬取的数据:

将要爬取的数据
ok! 开始撸代码!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import requests

def main():
url='https://www.lagou.com/jobs/positionAjax.json?city=%E4%B8%8A%E6%B5%B7&needAddtionalResult=false'
headers = {
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36',
'Host':'www.lagou.com',
'Referer':'https://www.lagou.com/jobs/list_python?city=%E4%B8%8A%E6%B5%B7&cl=false&fromSearch=true&labelWords=&suginput=',
'X-Anit-Forge-Code':'0',
'X-Anit-Forge-Token':None,
'X-Requested-With': 'XMLHttpRequest'
}
form_data = {
'first': 'true',
'pn': '1',
'kd': 'Python'
}
response = requests.post(url,headers=headers,data=form_data)
print(response.text)

if __name__ == '__main__':
main()

解释一下:

headers的获取:
请求数据

这样就能获取到列表数据了, 为了方便操作这些数据, 还可以转换成 json 格式, 这样就可以为所欲为了!

enjoy it!

-------------本文结束感谢您的阅读-------------
分享使我快乐!