首先进去拉钩网站,搜索python,鼠标右键检查,页面如下
分析可以知道网页是ajax加载的
查看preview发现数据是在result里面
查看headers里面,分析请求的接口是
https://www.lagou.com/jobs/positionAjax.json?city=%E6%88%90%E9%83%BD&needAddtionalResult=false发现city是搜索的城市, 是个post请求,请求参数为
其中first第一页是true,后面是false
现在就可以构造请求的url,和传递的参数获取数据, 具体代码如下
import requests def get_data(city, kd, pg): url = 'https://www.lagou.com/jobs/positionAjax.json?' params = { 'city': city, 'needAddtionalResult': 'false', } headers = { 'User-Agent': "Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 ", 'Host': 'www.lagou.com', 'Origin': 'https://www.lagou.com', 'Referer': 'https://www.lagou.com/jobs/list_python?city=%E5%8C%97%E4%BA%AC&cl=false&fromSearch=true&labelWords=&suginput=' } pages = [page for page in range(1, pg+1)] for page in pages: if page == 1: data = { 'first': 'true', 'pn': page, 'kd': kd } else: data = { 'first': 'false', 'pn': page, 'kd': kd } res = requests.post(url, headers=headers, params=params, data=data) print(res.text) get_data('成都','python',3)
其中city是城市,kd是搜索的关键字, pg是需要几页的数据 这里是写了这么获取数据,数据存储方面请自己保存