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中dictionary items()系列函数的用法实例
Aug 21 Python
由Python运算π的值深入Python中科学计算的实现
Apr 17 Python
在Python的Django框架中用流响应生成CSV文件的教程
May 02 Python
Python实现压缩与解压gzip大文件的方法
Sep 18 Python
一篇文章快速了解Python的GIL
Jan 12 Python
Python实现k-means算法
Feb 23 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
对numpy中的where方法嵌套使用详解
Oct 31 Python
对python文件读写的缓冲行为详解
Feb 13 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
python selenium 执行完毕关闭chromedriver进程示例
Nov 15 Python
使用python+whoosh实现全文检索
Dec 09 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python 自定义装饰器实例详解
2019/07/20 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
党员服务承诺书
2014/05/28 职场文书
创先争优活动承诺书
2014/08/30 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
Redis RDB技术底层原理详解
2021/09/04 Redis