python网络爬虫—快速入门(理论+实战)(七)
系列文章目录
(1)python网络爬虫—快速入门(理论+实战)(一)
(2)python网络爬虫—快速入门(理论+实战)(二)
(3) python网络爬虫—快速入门(理论+实战)(三)
(4)python网络爬虫—快速入门(理论+实战)(四)
(5)python网络爬虫—快速入门(理论+实战)(五)
(6)python网络爬虫—快速入门(理论+实战)(六)
序言
本人从事爬虫相关工作已8年以上,从一个小白到能够熟练使用爬虫,中间也走了些弯路,希望以自身的学习经历,让大家能够轻而易举的,快速的,掌握爬虫的相关知识并熟练的使用它,避免浪费更多的无用时间,甚至走很大的弯路。欢迎大家留言,一起交流讨论。
本节学习目标
掌握python网络爬虫如何解析json数据,通过爬取腾讯招聘网的数据示例掌握json数据的解析,加深对爬虫从分析到爬取再到解析这个过程的理解。
特别申明
本网络爬虫系列教程,只是为了记录个人对网络爬虫的学习和总结,期间所使用到的爬虫示例仅仅作为学习使用,请勿传播,请勿用于商用,请勿对目标网站造成攻击或者窃取非法数据等。
4.3 动手写网络爬虫——解析json数据(以爬取腾讯招聘网数据为例)
在前面的章节,我们学习过,爬虫基本流程的第一步就是发送请求,这就要求我们在爬取之前要弄清楚发送的这个请求的url是哪个。一般来讲,我们尽量去找响应结果是json数据格式的那个请求url,这是因为,对于json的数据解析比较简单,你只需要分析清楚返回的json数据中各个属性值的意义,然后用json库去取值就可以了。
需要引入json库:
import json#将响应数据转为json
json_data=json.loads(data.text)
#根据json中的数据值结果去获取相应值
.......
为了更加清晰的理解如何解析json数据,我们这里将以爬取腾讯招聘网上的工作信息,来理解json数据的解析过程。
1.首先,打开浏览器(以谷歌浏览器为例)进入腾讯招聘网站(https://careers.tencent.com/)
2.输入“数据分析”查找工作岗位:
3. 按键盘上的F12按键,查看网页源码:

4.点击右侧源码顶部的Network,然后点击下面的Fetch/XHR:

5. 点击键盘上的F5刷新页面,可以在右侧看到页面的数据请求链接信息:

6.依次点击各个请求链接进行分析,查找哪个请求链接获取的数据是我们所需要的,我们可以看到请求的结果是一个json格式的:

7.找到想要的请求链接后,点击Headers,复制请求链接:

8.把请求链接复制到浏览器上打开,可以看到是json格式的,分析链接中的参数:

9.一般可以通过参数名称推断出各个参数的含义,或者通过修改相应的参数值,删除个别参数等方式查看数据的变化,结合原网页上的数据,通过对比来推测参数的含义,如:我们推测pageSize应该为获取的数据量大小,我们尝试将它的值修改为5,然后对比下数据变化和原网页上的数据。
10.pageSize修改为5后,可观察到,获取了前5条数据,因此可确定pageSize为每次获取的数据条数。

11.通过上述方法依次确定pageIndex是当前的页码数,keyword是是查询的关键词,pageSize是每次获取的数据量大小,pageIndex是页码。
12.参数确定后,我们只要修改相应的参数就能够爬取到所有的招聘数据了。
接下来就可以编写爬取程序,对数据进行获取和解析了。
#根据返回的json中的数据结构,提取想要的数据jobs = json_data['Data']['Posts'] #经过分析,所有的数据都在Data下的Posts数组中for job in jobs:try:name = job["RecruitPostName"] #岗位名称Location = job["LocationName"]#工作地点work = job["Responsibility"].replace("\r\n","").replace("\n","") # 去除换行符 #工作内容update = job["LastUpdateTime"] #更新时间postUrl = job["PostURL"] #详情页网址#输出解析到的电影信息print(name,Location,work,update,postUrl)except:print(job)#万一解析出错,则输出电影信息,以便于检查是否是程序问题
如果要实现多页爬取,或者更换招聘的关键词,那么就可以通过循环,不断变换请求url中的pageIndex的值以及keyword值。
完整的程序代码,可以在评论区留言或私信:
: https://download.csdn.net/download/c1007857613/87370864
总结
本节主要介绍了python网络爬虫如何解析json数据,通过爬取腾讯招聘网的数据示例掌握json数据的解析,加深对爬虫从分析到爬取再到解析这个过程的理解
如对本章节有疑问,或者需要相应的学习资料的,欢迎评论留言!!!
【前一篇】:python网络爬虫—快速入门(理论+实战)(六)
相关文章:
python网络爬虫—快速入门(理论+实战)(七)
系列文章目录 (1)python网络爬虫—快速入门(理论实战)(一) (2)python网络爬虫—快速入门(理论实战)(二) (3) p…...
机器学习笔记——Chapter 1 – The Machine Learning landscape
ML学习笔记 Chapter 1 – The Machine Learning landscape 1.如何定义机器学习? Answer:机器学习是一门通过编程让计算机从数据中进行学习的科学(和艺术)。 2.机器学习在哪些问题上表现突出,你能给出四种类型吗&am…...
skimage.feature--corner_harris、hog、local_binary_pattern说明
skimage.feature说明–corner_harris、hog、local_binary_pattern 文章目录skimage.feature说明--corner_harris、hog、local_binary_pattern1. 前言2. corner_harris2.1 介绍2.2 参数及返回3. hog3.1 介绍3.2 参数及返回4. local_binary_pattern4.1 介绍4.2 参数及返回5. 总结…...
致敬白衣天使,学习Python读取
名字:阿玥的小东东 学习:Python、c 主页:阿玥的小东东 故事设定:现在学校要求对所有同学进行核酸采集,每位同学先在宿舍内等候防护人员(以下简称“大白”)叫号,叫到自己时去停车场排…...
JVM - 认识JVM规范
目录 重识JVM JVM规范作用及其核心 JVM 整体组成 理解ClassFile结构 ASM开发 重识JVM JVM概述JVM: Java Virtual Machine,也就是Java虚拟机所谓虚拟机是指: 通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统…...
文献阅读笔记 # CodeBERT: A Pre-Trained Model for Programming and Natural Languages
《CodeBERT: A Pre-Trained Model for Programming and Natural Languages》EMNLP 2020 (CCF-B)作者主要是来自哈工大、中山大学的 MSRA 实习生和 MSRA、哈工大的研究员。资源:code | pdf相关资源:RoBERTa-base | CodeNN词汇: bimodal: 双模态…...
openHarmony的UI开发
自适应布局 拉伸能力 Blank在容器主轴方向上,空白填充组件具有自动填充容器空余部分的能力。仅当父组件为Row/Column时生效,即是线性布局。这样便可以在两个固定宽度或高度的组件中间添加一个Blank(),将剩余空间占满,从而实现…...
【JavaSE】深入HashMap
文章目录1. HashMap概述2. 哈希冲突3. 树化与退化3.1 树化的意义3.2 树的退化4. 二次哈希5. put方法源码分析6. key的设计7. 并发问题参考 如何防止因哈希碰撞引起的DoS攻击_hashmap dos攻击_双子孤狼的博客-CSDN博客 为什么 HashMap 要用 h^(h >>&#…...
华为机试题:HJ62 查找输入整数二进制中1的个数(python)
文章目录博主精品专栏导航知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方法2、print() :打印输出。1、整型int() :将指定进制…...
代码随想录训练营一刷总结|
分为几个大部分: 数组 最先接触的部分,虽然说感觉是最简单的,但是需要掌握好基础,特别是小心循环。这里面需要再仔细看的就是螺旋矩阵那一块,其他的在后续刷的时候能用一种方法一次a就行。 链表 需要注意链表的基础…...
CSS中的几种尺寸单位
一、尺寸单位 CSS 支持多种尺寸单位,包括: px:像素,固定大小单位em:相对于当前元素字体大小的单位rem:相对于根元素(HTML)字体大小的单位%:相对于父元素的百分比单位vh…...
运维必会:ansible剧本(piaybook)
playbooks 概述以及实例操作 Playbooks 组成部分: Inventory Modules Ad Hoc Commands Playbooks Tasks: 任务,即调用模块完成的某些操作 Variables: 变量 Templates: 模板 Handlers: 处理器,由某时间触发执行的操作 Roles: 角色 YAML 介绍…...
活动星投票午间修身自习室制作在线投票投票制作网页
“午间修身自习室”网络评选投票_免费小程序投票推广_小程序投票平台好处手机互联网给所有人都带来不同程度的便利,而微信已经成为国民的系统级别的应用。现在很多人都会在微信群或朋友圈里转发投票,对于运营及推广来说找一个合适的投票小程序能够提高工…...
C#泛型:高级静态语言的效率利器
文章目录引入类型约束子类泛型常用的泛型数据结构前文提要: 💎超快速成,零基础掌握C#开发中最重要的概念💎抽丝剥茧,C#面向对象快速上手💎Winform,最友好的桌面GUI框架💎懂了委托&a…...
澳大利亚访问学者申请流程总结
澳大利亚访问学者申请需要注意些什么?下面知识人网小编整理澳大利亚访问学者申请流程总结。1、取得wsk英语成绩,现在都是先买票再上车了。2、联系外导,申请意向接收函(email)。3、向留学基金委CSC提出申请。4、获批后,申请正式邀请…...
cookie和Session的作用和比较
目录 什么是cookie cookie的工作原理 什么是session Session的工作原理 为什么会有session和cookie cookie和session如何配合工作 cookie和Session作用 什么是会话 什么是cookie cookie是web服务器端向我们客户端发送的一块小文件,该文件是干嘛的呢…...
测试员都是背锅侠?测试人员避“锅”攻略,拿走不谢
最近发生了一起生产事故,究其根源,事故本身属于架构或者需求层面需要规避的问题,测试人员的责任其实是非常小的,但实际情况是:相关测试人员因此承担了很大的压力,成为质量问题的“背锅侠”。 实际上&#…...
C++: C++模板<template>
C template content😊前言😁模板💕1、泛型编程😍2、函数模板😒2.1:函数模板概念👌2.2:函数模板的格式😘2.3:函数模板原理😁2.4:函数模…...
chmod命令详解
用法:chmod [选项]… 模式[,模式]… 文件… 或:chmod [选项]… 八进制模式 文件… 或:chmod [选项]… --reference参考文件 文件… Change the mode of each FILE to MODE. With --reference, change the mode of each FILE to that of R…...
状态机设计中的关键技术
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。 🔥文章和代码已归档至【Github仓库…...
如何用FCEUX重温经典游戏?全场景部署指南
如何用FCEUX重温经典游戏?全场景部署指南 【免费下载链接】fceux FCEUX, a NES Emulator 项目地址: https://gitcode.com/gh_mirrors/fc/fceux 为什么选择FCEUX模拟器?🎮 在众多NES模拟器中,FCEUX凭借三大核心优势脱颖而出…...
永磁同步电机全速域无位置传感器控制策略仿真研究:高频注入与改进滑膜控制方法应用
40、永磁同步电机全速域无位置传感器控制仿真(仿真代码参考文献说明文档) 主要内容: 采用高频注入改进滑膜控制方法,PMSM矢量控制仿真 [1]零低速域,采用无数字滤波器高频方波注入法,减少滤波的相位影响&…...
使用AI大大提升了学习代码的效率
最近看到一个观点,说AI的发展导致代码越来越不值钱了,AI降低了我们学习的门槛,大大提升了学习效率。好像很多程序都可以一个人一天上架一款产品。或许有夸张成分,但像我们普通人都体验到了AI的方便,比如在项目开发的过…...
咱们今天来唠唠机器人轨迹规划那点事儿。不少小伙伴在玩机械臂的时候总会遇到关节空间和笛卡尔空间轨迹规划的抉择困难症,这俩货到底有什么区别?直接上硬核代码
matlab笛卡尔空间和关节空间轨迹规划 关节空间机器臂多项式轨迹规划定做,353和333多项式轨迹规划和优化关节空间规划有个大杀器——多项式插值。比如要让机械臂从A点平滑运动到B点,咱们可以玩三次多项式(3-3-3)或者五次多项式&…...
嵌入式系统SOC验证与Linux实时补丁技术解析
嵌入式系统软件工程师面试技术要点解析 1. SOC原型验证技术体系 1.1 SOC验证工作内容与方法论 SOC原型验证是芯片设计流程中的关键环节,主要工作内容包括: 功能验证:确保设计符合规范要求 性能验证:评估系统吞吐量、延迟等指标…...
中兴光猫配置解密工具:轻松破解网络限制,完全掌控家庭网络
中兴光猫配置解密工具:轻松破解网络限制,完全掌控家庭网络 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否遇到过想要修改光猫设置却找不到入…...
【Python AI 工具实战宝典】:20个高复用AI用例+开箱即用代码模板,限时开源库清单泄露!
第一章:Python AI 工具生态全景与实战价值定位Python 已成为人工智能开发的事实标准语言,其核心优势不在于单一库的性能,而在于高度协同、分层清晰的工具生态体系。从底层计算(NumPy、CuPy)、模型构建(PyTo…...
COMSOL激光与电火花高斯热源作用下5.6版本两相流水平集仿真模型:流体传热-层流耦合研究
comsol激光、电火花(高斯热源)加工的水平集两相流仿真模型,5.6版本的,是流体传热—层流—两相流水平集耦合。在COMSOL Multiphysics 5.6中,模拟激光或电火花加工过程中的热源分布和流体行为,是一个相当有趣…...
UniApp多主题开发避坑指南:为什么SCSS+Require比Vuex方案更优雅?
UniApp多主题开发实战:SCSS动态加载方案深度解析与性能优化 在移动应用开发领域,主题切换功能已成为提升用户体验的重要环节。UniApp作为跨平台开发框架,如何实现高效、灵活的主题管理一直是开发者关注的焦点。本文将深入探讨基于SCSS变量与动…...
3步实战指南:轻松搭建抖音直播间弹幕数据抓取系统
3步实战指南:轻松搭建抖音直播间弹幕数据抓取系统 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2024最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 想象一下,你…...
