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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
从Python的源码浅要剖析Python的内存管理
Apr 16 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
Python模拟登录的多种方法(四种)
Jun 01 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
python3使用matplotlib绘制散点图
Mar 19 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
python 中关于pycharm选择运行环境的问题
Oct 31 Python
基于OpenCV的路面质量检测的实现
Nov 04 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
Python机器学习实战之k-近邻算法的实现
Nov 27 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中try catch捕获异常实例详解
2014/11/21 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
增大python字体的方法步骤
2020/07/05 Python
Python实时监控网站浏览记录实现过程详解
2020/07/14 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
广告学专业应届生求职信
2013/10/01 职场文书
创业计划书中要认真思考的问题
2013/12/28 职场文书
校园之星获奖感言
2014/01/29 职场文书
公益广告标语
2014/06/19 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
2014年法务工作总结
2014/12/11 职场文书
会计工作检讨书
2015/02/19 职场文书
大队委员竞选稿
2015/11/20 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python