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 相关文章推荐
tensorflow 加载部分变量的实例讲解
Jul 27 Python
django进阶之cookie和session的使用示例
Aug 17 Python
python在html中插入简单的代码并加上时间戳的方法
Oct 16 Python
基于python实现KNN分类算法
Apr 23 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
解决IDEA 的 plugins 搜不到任何的插件问题
May 04 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
pytorch 使用半精度模型部署的操作
May 24 Python
python 如何做一个识别率百分百的OCR
May 29 Python
Python使用pandas导入csv文件内容的示例代码
Dec 24 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缓存技术介绍
2006/11/25 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
PHP强制转化的形式整理
2020/05/22 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
node.js的事件机制
2017/02/08 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
python中sets模块的用法实例
2014/09/30 Python
如何用python整理附件
2018/05/13 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
利用python计算时间差(返回天数)
2019/09/07 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
教师演讲稿范文
2014/01/08 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
2015年考研复习计划
2015/01/19 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
唐山大地震的观后感
2015/06/05 职场文书
寻找成龙观后感
2015/06/12 职场文书
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js