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 getopt 参数处理小示例
Jun 09 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
在Python中使用mechanize模块模拟浏览器功能
May 05 Python
在Python的列表中利用remove()方法删除元素的教程
May 21 Python
在Python的Django框架中simple-todo工具的简单使用
May 30 Python
Python 实现 贪吃蛇大作战 代码分享
Sep 07 Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
利用python画一颗心的方法示例
Jan 31 Python
Python模拟脉冲星伪信号频率实例代码
Jan 03 Python
Python实现PS图像调整之对比度调整功能示例
Jan 26 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
python 监测内存和cpu的使用率实例
Nov 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 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
Valerio 发布了 Mootools
2006/09/23 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
微信小程序收藏功能的实现代码
2020/06/19 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
单利模式及python实现方式详解
2018/03/20 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
Python接口开发实现步骤详解
2020/04/26 Python
中学教师自我鉴定
2014/02/07 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
教师岗位聘任书范文
2014/03/29 职场文书
2014年教师节寄语
2014/08/11 职场文书
公司授权委托书
2014/10/17 职场文书
2015年三万活动总结
2015/03/25 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python
Python+Tkinter打造签名设计工具
2022/04/01 Python
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL