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 2.7不能正常使用pip install的问题
Jun 12 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 Python
由Python编写的MySQL管理工具代码实例
Apr 09 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
python实现多线程端口扫描
Aug 31 Python
一文了解python 3 字符串格式化 F-string 用法
Mar 04 Python
关于tf.matmul() 和tf.multiply() 的区别说明
Jun 18 Python
python合并多个excel文件的示例
Sep 23 Python
用python写PDF转换器的实现
Oct 29 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
python使用scapy模块实现ARP扫描的过程
Jan 21 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中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
python中reduce()函数的使用方法示例
2017/09/29 Python
python如何重载模块实例解析
2018/01/25 Python
Python中创建二维数组
2018/10/17 Python
python使用thrift教程的方法示例
2019/03/21 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
Python netmiko模块的使用
2020/02/14 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
会计电算化专业个人的自我评价
2013/11/24 职场文书
事业单位辞职信范文
2014/01/19 职场文书
主题党日活动总结
2014/07/08 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
Python time库的时间时钟处理
2021/05/02 Python
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL
浅谈JavaScript作用域
2021/12/06 Javascript
SQL SERVER存储过程用法详解
2022/02/24 SQL Server