爬51job:url里的内容
项目的开发工具选择Requests模块和BeautifulSoup模块实现爬虫开发与数据清洗,
数据存储选择Sqlalchemy框架,
数据库选择MySQL。
获取城市编号
1、观察搜索页的URL地址,控制变量,观察规律。
开发者工具里,单击“Network”选项卡并刷新搜索页,重新捕捉搜索页的请求信息。
查看每个请求信息的响应内容preview,从中查找每个城市的数字编号,最终在“JS”选项卡下找到全国的城市编号
将该请求的响应内容转换成字典格式,再将字典的键值进行互换。
由于爬虫是根据使用者输入城市名来获取相应的数字编号,再通过城市编号构建相应的URL地址,
所以将字典的键值进行互换可方便数字编号的获取。
将城市的数字编号获取功能定义为函数get_city_code
import requests
#获取城市编号 url里面那个是开发者工具,network,JS下面找到的,右键copy link address
def get_city_code():
url = 'https://js.51jobcdn.com/in/js/2016/layer/area_array_c.js?20210318'
r = requests.get(url)
#字符串转换字典
city_dict = eval(r.text.split('=')[1].split(';')[0])
#字典键值互换
city_dict = (v : k for k, v in city_dict.items())
return city_dict
报错——
获取职位总页数
总页数的获取方式有两种:在分页栏直接获取总页数或者通过总职位数除以每页的职位数。两种方式都可取,但笔者认为后者比前者稍胜一筹
用选择-element看总职位数
函数get_pageNumber的实现逻辑大致如下:(1)首先向网站发送HTTP请求并获取相应的响应内容,发送请求的URL地址为搜索页的URL地址,而搜索页的URL地址是通过参数city_code和keyword构建而成。(2)然后从响应内容中提取总职位数,提取方式由BeautifulSoup4模块和re模块实现,前者用于对总职位数进行精准定位,后者用来去除总职位数的中文内容。(3)最后将总职位数和每页的职位数进行除法计算得出总页数&#x