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的正则表达式re模块的常用方法
Mar 09 Python
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
Jul 09 Python
Python的另外几种语言实现
Jan 29 Python
Python 逐行分割大txt文件的方法
Oct 10 Python
python如何将图片转换为字符图片
Aug 19 Python
django表单实现下拉框的示例讲解
May 29 Python
python中reader的next用法
Jul 24 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
python列表插入append(), extend(), insert()用法详解
Sep 14 Python
python urllib库的使用详解
Apr 13 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
4种非常实用的python内置数据结构
Apr 28 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
PHP SOCKET编程详解
2015/05/22 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
详谈ES6中的迭代器(Iterator)和生成器(Generator)
2017/07/31 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
Python字符串详细介绍
2015/05/09 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
Python Requests安装与简单运用
2016/04/07 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
python爬虫实现获取下一页代码
2020/03/13 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
python时间time模块处理大全
2020/10/25 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
优秀学生评语大全
2014/04/25 职场文书
伦敦奥运会口号
2014/06/13 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
高三物理教学反思
2016/02/20 职场文书
党员公开承诺书2016
2016/03/24 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫