网页源代码抓取工具(一个网站抓站中遇到的奇特网站,分享思路和抓取方法)
优采云 发布时间: 2021-12-29 13:38网页源代码抓取工具(一个网站抓站中遇到的奇特网站,分享思路和抓取方法)
在我们的学习过程中,我们想在打开网站的时候抓取一次数据,但并不是所有的网站都可以通过一种方式抓取数据。有的有特殊的网页结构,有的有不同的json数据包。慢慢写一些。与我在爬虫过程中遇到的奇葩网站分享爬虫的思路和方法!
工具、目标
工具:pycharm、python3.6 版本
库:请求库
目标:普世网热门图片直播页面,所有图片信息
注意:本网站有一个流行的图片页面,其中收录
活动的相关照片。所有图片信息根据事件写入txt文件(不下载图片,以免影响服务器)!
目标分析
首先,打开如上图所示的主页。不要担心其他人。只需单击右上角。选项出现后,点击进入热图直播选项(注意:部分浏览器需要放大页面才能看到热图直播选项),进入后页面是这样的
在这里,我已放大到 30%。下面是一页一页的活动现场图片。随便点击一个事件,让我们看一下页面
看到页面上的图片加载这么慢,应该是动态加载的,右键查看源码,果然如此!
没有任何图片信息,那我们就需要使用浏览器的页面审核工具了!我这里用的是火狐浏览器,按F12打开,然后点击网络,清除内容,刷新页面,看看加载了哪些数据。
经过简单的检查,我们发现了2个数据,收录
了我们想要的数据
一个是activity相关的信息,一个是image相关的信息,都是json格式加载的。这个很简单,通过请求就可以得到相关的URL。这时候突然想到,如果之前的多个活动页面也是动态加载的,那么是否可以通过这种方式捕获所有活动呢?来看看
这个json数据收录
了页面加载的所有活动信息!没有翻页。. . 难怪加载这么慢【手动申诉】。
代码
通过上面的分析,我们了解了目标数据的位置,接下来就可以开始尝试写代码了
导入requests库,然后直接请求真实的URL,得到名称和对应的URL(真实的URL在消息头中),然后在页面中构造真实的URL。上面得到的网址实际上是网页的网址,而不是网页的网址。如何获取json包所在的真实地址?我们对比一下获取到的几个页面的真实URL,不难发现其规律性。
通过对比发现activityNo的值其实是不一样的,而且这个值也存在于上面抓到的json包中!
构造下一个页面的真实请求地址,然后抓取json包获取所有图片url!至此,核心代码已经写好,完善一下,整体代码和效果如下:
不到1分钟,这个页面上的所有活动和活动图片的url都被保存了,整体代码不到20行,一个非常简单的网站!如果要下载图片,可以把所有的url复制到下载工具,批量下载!
后记
本网站整体结构较为清晰,数据易于获取。今天之所以用这个网站来分享,是因为当我开始抓包的时候,我简直不敢相信。一页之间加载了400多张图片。. . . 而且看页面结构,没想到这么简单!
总的来说,这个网站比较适合新手学习抓包和获取数据。希望对大家有帮助,加油!