网页源代码抓取工具(网络爬虫系列(一):chrom抓包分析(组图))
优采云 发布时间: 2021-09-21 17:18网页源代码抓取工具(网络爬虫系列(一):chrom抓包分析(组图))
网络爬虫系列(一):Chrome数据包捕获分析)
1、测试环境
浏览器:Chrome浏览器
Web分析工具:开发人员工具
2、web页面分析(1)web页面源代码分析)
我们知道网页可以分为静态网页和动态网页。许多人会错误地认为静态网页是没有动态效果的网页。事实上,这种说法是错误的
另外,目前很多动态网站都采用了异步加载技术(Ajax),这也是捕获的源代码多次与网站显示的源代码不一致的原因
对于如何抓取动态网页,有两种方法:
我们以京东产品为例,分析如何通过chrome抓包,首先打开产品主页
右键单击网页空白处并选择查看网络源代码,或使用快捷方式CTRL+U直接打开它)
请注意,当您查看网页的源代码时,您会得到网站最原创的源代码,即我们通常获取的源代码
再次进入网页空白处,右键单击并选中(或使用快捷键CTRL+Shift +I/F12直接打开)
请注意,您得到的是由Ajax加载并由JavaScript呈现的源代码,即当前网站显示内容的源代码
通过比较,我们可以发现两者的内容是不同的,这是异步加载技术(Ajax)的一个典型例子
目前,京东产品的价格至少是通过异步加载生成的。这里有三种方法来判断网页中的内容是否是动态生成的:
(2)网络数据包捕获分析)
让我们以京东商品为例来说明。打开商品主页,尝试捕获动态加载的商品价格数据
使用快捷键Ctrl+Shift+I或F12打开开发者工具,然后选择网络选项卡进行数据包捕获分析
此时,按快捷键F5刷新页面。您可以看到开发人员工具中出现了各种包。我们使用filter来过滤包
首先,选择doc,您可以看到列表中只显示一个包
一般来说,这是浏览器收到的第一个数据包,用于获取网站请求的原创源代码@
单击“标题”以查看其标题参数设置
单击响应以查看返回的源代码。很容易发现它实际上与通过查看网页源代码返回的信息一致
让我们回到正题上来。对于动态加载的数据包捕获分析,我们可以主要查看XHR和JS选项卡
选择JS进行筛选,发现列表中出现了许多包。分析之后,我们过滤下图中标记的包
此包返回有关价格的信息,但经过仔细分析,发现这些价格不属于当前商品,而是属于流行配件
这个包裹与价格有关。让我们先看一下这个包的请求URL:
%2CJ_8141909%2CJ_5028795%2CJ_152026%2CJ_61192828749%2CJ_2%2CJ_2533882%2CJ_854803%2CJ_3693877%2CJ_4%2CJ_136360&;ext=11100000&;来源=项目pc
直接用浏览器打开URL,可以看到返回的JSON数据确实收录价格信息
通过分析URL的参数,可以推断skuid应该是每个商品的唯一标记。我们在哪里可以找到我们需要的商品的臭鼬
事实上,SKU是物流、运输等行业常用的缩写。其全称为库存单位,即存货进出计量的基本单位。现在它已经扩展到统一产品编号的缩写。每个产品对应一个唯一的SKU