爬虫实战

2023-11-06

爬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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬虫实战 的相关文章

  • 配置wsl外网访问(实操步骤)

    介绍 wsl存在一个ip1 window存在一个ip2 ip1无法ping通与ip2处于同一网段下的ip 此种情况下 涉及到网络通信相关的开发就比较困难 本文介绍配置wsl外网的访问 操作步骤 获取wsl的ip 管理员身份在powershe
  • Jenkins安装部署与自动化部署网站实战

    1 CICD与Jenkins概述 互联网软件的开发和发布 已经形成了一套标准流程 假如把开发工作流程分为以下几个阶段 编码 构建 集成 测试 交付 部署 在上图中看到 持续集成 Continuous Integration 持续交付 Con
  • 数据结构-1

    1 2 线性结构树状结构网状结构 表 数 图 数据 数值型 非数值型 1 2 3数据类型和抽象数据类型 1 3抽象数据类型 概念小结 线性表 如果在独立函数实现的 c 文件中需要包含 stdlib h 头文件 而主函数也需要包含 stdli
  • 服务器部署Java项目详述

    前言 记录一下自己从0到1部署Java前后端项目到服务器上的过程 过程梗概 首先要先买一个服务器 一般用CentOS7 然后大概步骤是再配置一下所买的服务器环境 再安装下对应我们的Java项目所需要的一些应用程序即可 其中 Nginx是用来
  • 如何部署LVS + keepalived 负载均衡高可用集群

    目录 一 LVS架构 概念 L4和L7负载均衡的区别 keepalive故障自动切换 抢占与非抢占 二 keepalived管理LVS负载均衡器 LVS集中节点的健康检查 三 部署LVS keeplived 高可用集群 第一步 关闭防火墙和
  • Scala中 常用容器类的函数/方法

    1 foreach 迭代遍历集合中的每个元素 对每个元素进行处理 但是没有返回值 常用于打印结果数据 val ls List 1 3 5 7 9 ls foreach println 打印每个元素 ls foreach println 打印
  • kzalloc 函数详解

    用kzalloc申请内存的时候 效果等同于先是用 kmalloc 申请空间 然后用 memset 来初始化 所有申请的元素都被初始化为 0 kzalloc allocate memory The memory is set to zero
  • wpf

    Windows Presentation Foundation WPF 是微软新一代图形系统 运行在 NET Framework 3 0架构下 为用户界面 2D 3D 图形 文档和媒体提供了统一的描述和操作方法 基于DirectX 9 10
  • DP和HDMI区别

    转自 https www toutiao com i6877677362054595080 在目前市面上显示器接口中 VGA和DVI已经逐渐退出了历史舞台 Type C还算是小众 而DP DisplayPort 与HDMI则成为了主流产品的
  • 普通人在chatGPT的3个赚钱机会

    短短的2个多月内 到处都在讨论ChatGPT 不管你有没有参与其中 以GPT为代表的AI工具已经进化到一个很恐怖的程度了 比如说最近爆火的AutoGPT 能按照一个指令自动干活了 好想试一下 让AutoGPT自动帮我分析福利彩票 ChatG
  • 实现el-form一行中多个el-form-item

    el form item默认一个占一行 利用el row和el col实现一行中多个 注意 el col span 12 中的12是一个占据的列数 默认一列总共24列 通过调整这个数字 可以调整不同列的宽度 如果只使用el col 不在外面
  • c++23中的新功能之一介绍

    一 c 23的目标和延革 c 的标准发展速度在经过c 11的近乎可以称革新的变化之后 开始步入了快车道 有的人在网上说 c 11后的c 语言和c 11以前的c 语言不是一个语言 这有点夸张了 但不可否认 其内容确实变化非常大 很多人可能都没
  • 异步处理机制 多线程

    在处理程序执行流程时 一定要切记 android的处理机制是异步处理 多线程的它并不会因为一个线程处于阻塞状态时其他的线程就不往下执行了 看看代码是不是一个线程的 如果是一个线程的 线面就阻塞了 转载于 https www cnblogs
  • SpringBoot项目将数据源变成Json文件(Jackson2RepositoryPopulatorFactoryBean实现)

    一 项目情景 有时在我们项目当中需要存储一些固定值时 会使用一些配置文件来存储 例如最常见的 json文件 它可以用来存储相应的属性以及属性值 当你需要的时候进行提取 甚至还可以基于这个 json文件写一些条件查询的语句来获得自己需要的值
  • 正则表达式转义字符

    正则表达式的转义字符 除 外 其他字符与自身匹配 点的转义 gt u002E 美元符号的转义 gt u0024 乘方符号的转义 gt u005E 左大括号的转义 gt u007B 左方括号的转义 gt u005B 左圆括号的转义 gt u0

随机推荐