爬虫实战

爬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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值