Python爬虫谷歌Chrome F12抓包过程原理解析


Posted in Python onJune 04, 2020

浏览器打开网页的过程就是爬虫获取数据的过程,两者是一样一样的。浏览器渲染的网页是丰富多彩的数据集合,而爬虫得到的是网页的源代码htm有时候,我们不能在网页的html代码里面找到想要的数据,但是浏览器打开的网页上面却有这些数据。这就是浏览器通过ajax技术异步加载(偷偷下载)了这些数据。

大家禁不住要问:那么该如何看到浏览器偷偷下载的那些数据呢?

答案就是谷歌Chrome浏览器的F12快捷键,也可以通过鼠标右键菜单“检查”(Inspect)打开Chrome自带的开发者工具,开发者工具会出现在浏览器网页的左侧或者是下面(可调整),它的样子就是这样的:

Python爬虫谷歌Chrome F12抓包过程原理解析

让我们简单了解一下它如何使用:

谷歌Chrome抓包:1. 最上面一行菜单

左上角箭头 用来点击查看网页的元素

第二个手机、平板图标是用来模拟移动端显示网页

Elements 查看渲染后的网页标签元素

提醒 是渲染后(包括异步加载的图片、数据等)的完整网页的html,不是最初下载的那个html。

Console 查看JavaScript的console log信息,写网页时比较有用

Sources 显示网页源码、CSS、JavaScript代码

Network 查看所有加载的请求,对爬虫很有帮助

后面的暂且不管。

谷歌Chrome抓包:2. 重要区域

图中红框的两个按钮比较有用,编号为2的是清空请求记录;编号3的是保持记录,这在网页有重定向的时候很有用

图中绿色区域就是加载完整个网页,浏览器的全部请求记录,包括网址、状态、类型等。写爬虫时,我们就要在这里寻找线索,提炼金矿。

最下面编号为4的红框显示了加载这个网页,一共请求了181次,数量是多么地惊人,让人不禁心疼七浏览器来。

点击一条请求的网址,右侧就会出现新的窗口显示该条请求的相信信息:

Python爬虫谷歌Chrome F12抓包过程原理解析

图中左边红框就是点击的请求网址;绿框就是详情窗口。

详情窗口包括,Headers(请求头)、Preview(预览响应)、Response(服务器响应内容)和Timing(耗时)。

Preview、Response 帮助我们查看该条请求是不是有爬虫想要的数据;

Headers帮助我们在爬虫中重建http请求,以便爬虫得到和浏览器一样的数据。

了解和熟练使用Chrome的开发者工具,大家就如虎添翼可以顺利写出自己的爬虫啦。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python命令行参数解析OptionParser类用法实例
Oct 09 Python
python比较2个xml内容的方法
May 11 Python
Python基本语法经典教程
Mar 11 Python
TensorFlow模型保存和提取的方法
Mar 08 Python
Python面向对象之继承和组合用法实例分析
Aug 27 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
python:按行读入,排序然后输出的方法
Jul 20 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
python中wx模块的具体使用方法
May 15 Python
深入了解NumPy 高级索引
Jul 24 Python
python里glob模块知识点总结
Jan 05 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
Jun 04 #Python
解决python图像处理图像赋值后变为白色的问题
Jun 04 #Python
Python爬虫JSON及JSONPath运行原理详解
Jun 04 #Python
python 实现图像快速替换某种颜色
Jun 04 #Python
python下对hsv颜色空间进行量化操作
Jun 04 #Python
Python-opencv实现红绿两色识别操作
Jun 04 #Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 #Python
You might like
收音机术语解释
2021/03/01 无线电
php中文乱码怎么办如何让浏览器自动识别utf-8
2014/01/15 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
JQuery小知识
2010/10/15 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python3中property使用方法详解
2019/04/23 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
C#笔试题集合
2013/06/21 面试题
爸爸的花儿落了教学反思
2014/02/20 职场文书
买房子个人收入证明
2014/10/12 职场文书
群众路线个人整改措施
2014/10/24 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
项目合作意向书
2015/05/08 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
故意伤害辩护词
2015/05/21 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python