准备工作
- 新建项目-新建PythonFile
- 安装爬虫模块
1
pip install requests
- requests的常用函数
- request.get(),对应http协议的get请求,也就是把网页下载下来。
- request.post(),对应Http协议的post请求,就是把数据上传到网页服务器。
- 观察boss直聘的url。
1
https://www.zhipin.com/c101250100-p110101/
- 通过观察发现,后面应该是城市代码和职位代码
- 通过检查-network发现,城市代码应该是储存在city.json里面
- 职位代码应该是储存在position.json里面
通过观察:city.json的url为
| |
postion.json的url为
| |
爬取城市代码
- 测试连接 返回值:
1 2 3 4 5
import requests # requests-->请求 url = 'https://www.zhipin.com/wapi/zpCommon/data/city.json' # boss直聘城市链接 response = requests.get(url) print(response) # 打印响应
1
<Response [200]>
200:代表返回成功
404:网络连接失败
500:服务器奔溃
- 加入浏览器伪装头’user-agent’,防止被服务器发现你是爬虫
1
headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36'}
- 第一次打印 结果如下: 根据上图观察,返回的json可以当成是一个多层字典。
1 2 3 4 5 6 7 8
import requests from pprint import pprint url = 'https://www.zhipin.com/wapi/zpCommon/data/city.json' # boss直聘城市代码 headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) \ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36'} response = requests.get(url, headers=headers) data = response.json() # 从返回对象中提取json pprint(data)
数据均在
zpData\cityList
下,于是对zpData进行第一次解包。
对cityList进行第二次解包。
| |
省和城市代码就爬取完毕了,直接粘贴到excel就可以。至于如何直接导出excel,后面再说。