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实用技巧两则
Aug 29 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
Oct 20 Python
通过Python 获取Android设备信息的轻量级框架
Dec 18 Python
Python 忽略warning的输出方法
Oct 18 Python
numpy.where() 用法详解
May 27 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 21 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
基于python图像处理API的使用示例
Apr 03 Python
Python Merge函数原理及用法解析
Sep 16 Python
Python实现手势识别
Oct 21 Python
教你漂亮打印Pandas DataFrames和Series
May 29 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实现快速排序的三种方法分享
2014/03/12 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
thinkphp分页集成实例
2017/07/24 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
Python FTP操作类代码分享
2014/05/13 Python
跟老齐学Python之Python文档
2014/10/10 Python
python传递参数方式小结
2015/04/17 Python
Python 模板引擎的注入问题分析
2017/01/01 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
瑞典时尚耳机品牌:Urbanears
2017/07/26 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
开业庆典答谢词
2014/01/18 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
施工安全承诺书
2014/05/22 职场文书
2014年关工委工作总结
2014/11/17 职场文书