一?抓取分析
1 在抓取之前,首先要分析抓取的逻辑,打开今日头条的首页http://www.toutiao.com/
2?右上角有一个搜索入口,这里尝试抓取街拍美图,所以输入“街拍”二字搜索一下。
3?分析数据
4?我们的目的是要抓取其中的美图,这里一组图就对应前面data字段中的一条数据。每条数据还有一个image_listl字段,它是列表形式,这其中就包含了组图的所有图片列表。
5 我们只需要将列表中的url字段提取出来并下载下来就好了。每一组图都建立一个文件夹,文件夹的名称就为组图的标题。
6 接下来,就可以直接用Python来模拟这个Ajax请求,然后提取出相关美图链接并下载。但是在这之前,我们还需要分析一下URL的规律。
7 切换回Headers选项卡,观察一下它的请求URL和Headers信息,如下图所示。
可以看到,这是一个GET请求,请求URL的参数有offset、format、keyword、autoload、count、cur_tab、from和pd。我们需要找出这些参数的规律,因为这样才可以方便地用程序构造出来。
滑动窗口,观察一下后续链接的参数,发现变化的参数只有offset,其他参数都没有变化,而且第二次请求的offset值为20,第三次为40,第四次为60,所以可以发现规律,这个offset值就是偏移量,进而可以推断出count参数就是一次性获取的数据条数。因此,我们可以用offset参数来控制数据分页。这样一来,我们就可以通过接口批量获取数据了,然后将数据解析,将图片下载下来即可。
二?爬取代码
三?结果
?