首页 > 编程知识 正文

python 爬虫实例(python和爬虫什么关系)

时间:2023-05-05 15:17:29 阅读:1237 作者:73

在我们学习的过程中,当我们打开一个网站时,我们希望捕捉数据一次,但并不是所有的网站都能以一种方式捕捉数据。有些网站有特殊的结构,有些json数据包不同。慢慢写一些我们在抓取网站过程中遇到的奇怪网站,和大家分享想法和抓取方法!

工具、目标

工具:pycharm,python3.6版本3.6

库:请求库

目的:频谱时间网热门图片直播页面,所有图片信息。

描述:这个网站有一个流行的图片页面,里面有与活动相关的照片。根据活动将所有图片信息写入txt文档(不要下载图片以免影响服务器)!

目标分析

首先如上图打开主页,剩下的不用担心,只需点击右上角,选项出现后,点击进入直播热图选项(注意:部分浏览器需要缩放页面才能看到直播热图选项),进入后页面如下

在这里,我放大到30%,下面,有一个个运动画面的直播页面。只需点击一个活动,让我们看看页面。

看页面上的图片加载这么慢,应该是动态加载的。右键查看源代码,果然!

没有任何图片信息,那么我们需要使用浏览器的页面审核工具!我这里用的是Firefox浏览器,按F12打开,然后点击网络,清除内容,刷新页面,看看它加载了什么数据。

简单看了一下,发现其中两个包含了我们想要的数据。

一个是活动相关信息,一个是图片相关信息,都是以json格式加载的,所以很简单,你可以通过请求相关的url来获取。这时我突然想到,如果动态加载前面几个活动页面,是不是所有的活动都可以用这种方式捕获?来看看

在这个json数据中,有页面加载的所有活动信息!不要翻页。难怪装车这么慢【手动委屈】。

代码实现

通过上面的分析,我们知道了目标数据在哪里,所以可以开始尝试写代码了。

导入requests库,然后直接请求真实url,获取名称和对应的url(真实url在消息头中),然后在页面中构建真实URL。上面得到的URL实际上是网页的URL,而不是网页的json包所在的真实地址。你是怎么得到真实地址的?我们再多取几个获得页面的真实URL进行对比,不难发现其规律性。

https://wx.plusx.cn/activity/live/pics?练习no=1341537 picindex=0 isnew=false count=3000 ppsign=

https://wx.plusx.cn/activity/live/pics?练习no=3321860 picindex=0 isnew=false count=3000 ppsign=

https://wx.plusx.cn/activity/live/pics?练习no=1341537 picindex=0 isnew=false count=3000 ppsign=

https://wx.plusx.cn/activity/live/pics?练习no=451977 picindex=0 isnew=false count=3000 ppsign=

对比发现,activityNo的值其实是不一样的,这个值也存在于上面捕捉到的json包中!

建立下一页的真实请求地址,然后抓取json包,获取所有图片URL!至此,核心代码已经写好,将会完善。总体代码和效果如下:

不到1分钟,这个页面上所有的活动和活动图片网址都保存好了,整体代码不到20行。这是一个简单的网站!如果你想下载图片,可以把所有的网址复制到下载工具中,批量下载!

附言

这个网站整体结构比较清晰,数据容易获取。今天,我们分享这个网站的原因是,当我们开始抓取包时,我们无法相信一页之间加载了400多张图片。而且看页面结构,没想到这么简单!

总的来说,这个网站比较适合初学者学习抢包和获取数据,希望对大家有所帮助,加油!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。