大家好ღ◈◈★,今天我们以今日头条为例ღ◈◈★,通过分析Ajax请求来抓取今日头条的街拍美图ღ◈◈★,并将图片下载到本地保存下来ღ◈◈★。准备好了吗ღ◈◈★,我们现在开始ღ◈◈★!
随后我们打开开发者工具完美竞技平台官网ღ◈◈★,切换到Network选项卡ღ◈◈★,重新刷新页面并下滑完美竞技平台官网ღ◈◈★,可以发现这里出现了很多的条目ღ◈◈★,点击‘search?keyword=%’开头的条目ღ◈◈★,可以发现里面有很多图片信息的数据ღ◈◈★,其中img_small_url大团结之乱史目录ღ◈◈★、img_url是图片链接ღ◈◈★,如下图ღ◈◈★:
我们只需要用Python来模拟这个Ajax请求ღ◈◈★,然后提取相关美图链接并下载下来就可以了ღ◈◈★,但是在这之前ღ◈◈★,我们还需要分析一下URL的规律ღ◈◈★。
接下来ღ◈◈★,滑动页面ღ◈◈★,多加载一些新结果ღ◈◈★。在加载的同时可以发现完美竞技平台官网ღ◈◈★,Network中又出现了许多Ajax请求ღ◈◈★。如下图ღ◈◈★:
观察后续链接的参数ღ◈◈★,可以发现发生变化的参数只有page_numღ◈◈★,其他参数都没有变化ღ◈◈★,而且page_num的偏移量为1ღ◈◈★,因此我们可以用page_num参数来控制数据分页ღ◈◈★,这样一来大团结之乱史目录ღ◈◈★,我们就可以通过接口批量获取数据了ღ◈◈★,然后将数据解析ღ◈◈★,将图片下载下来即可大团结之乱史目录ღ◈◈★。
定义一个get_page()方法ღ◈◈★,实现加载单个Ajax请求的结果ღ◈◈★。其中唯一变化的参数就是page_num大团结之乱史目录完美竞技平台官网ღ◈◈★,所以我们将它当作参数传递ღ◈◈★,实现代码如下ღ◈◈★:
这里我们用urlencode()方法构造请求的GET参数ღ◈◈★,然后用requests请求这个链接ღ◈◈★,如果返回状态码为200ღ◈◈★,则调用response的json()方法将结果转为JSON格式ღ◈◈★,然后返回ღ◈◈★。
接下来ღ◈◈★,再实现一个解析方法ღ◈◈★:提取每条数据的img_url字段的图片链接ღ◈◈★,将图片链接返回ღ◈◈★,此时我们通过构造器来实现ღ◈◈★,实现代码如下ღ◈◈★:
接下来完美竞技平台官网ღ◈◈★,实现一个保存图片的方法saving_images()ღ◈◈★,其中link是前面get_images()方法返回的图片链接ღ◈◈★,实现代码如下ღ◈◈★:
最后ღ◈◈★,只需要构造一个page_num数组大团结之乱史目录ღ◈◈★,遍历page_numღ◈◈★,提取图片链接ღ◈◈★,并将其下载即可完美竞技平台官网ღ◈◈★,具体代码如下ღ◈◈★:
这样整个程序就完成了ღ◈◈★,运行之后可以发现街拍美图保存下载下来了ღ◈◈★,这里我们只遍历了两个page_numღ◈◈★,爬取了80张图片ღ◈◈★,如下图ღ◈◈★:
好了完美竞技平台官网ღ◈◈★,Python爬虫实战——今日头条街拍美图的爬取就讲解到这里ღ◈◈★,看完是不是觉得很高级ღ◈◈★,想了解更多关于爬虫的知识ღ◈◈★,欢迎大家进入下方Python交流学习群完美竞技平台官网ღ◈◈★,里面很多一起学习Python的人交流讨论ღ◈◈★,还有大神分享项目开发经验ღ◈◈★,提供编程思路ღ◈◈★,让你在学习Python的过程中感觉非常有趣ღ◈◈★,点击下方入口↓↓↓就可直接进入ღ◈◈★!完美电竞完美竞技平台官网电缆