/前言/
我们常常知道,人类的眼睛在捕捉信息的时候,对图像的反映速度比对具体的文字更加敏感,所以小伙伴们在浏览网页的时候首先映入眼帘的是图片,在这篇文章中将结合图片的抓取,主要介绍Scrapy爬虫框架中Request函数内部的meta参数。
我们平时在浏览博客或者文章的时候通常会看到文章的旁边会带有图片,通常我们称之为封面图,一般情况下是作者插入在文章或者博客中的第一张图片,如下图所示。
而在具体的文章中,可以找到该图片,并且该图片通常是通篇文章中的第一张,如下图所示。
我们之前已经获取到了文章的发布日期、主题、点赞数、收藏数、评论数等目标字段,现在我们需要获取该文章封面图的URL,那该如何来实现呢?具体的教程如下所示。之前的文章可以前往:在Scrapy中如何利用CSS选择器从网页中采集目标数据——详细教程(上篇)、在Scrapy中如何利用CSS选择器从网页中采集目标数据——详细教程(下篇)、在Scrapy中如何利用Xpath选择器从网页中采集目标数据——详细教程(上篇)、在Scrapy中如何利用Xpath选择器从网页中采集目标数据——详细教程(下篇)。
/具体实现/
毋庸置疑,封面图是存放在文章列表页中的,所以我们需要从文章列表页的URL出发。有的小伙伴就不服气了,为啥不可以从文章详情页中去获取咧?因为有的时候详情页中的图片不一定是封面图,很多时候博主会选择自己自定义添加图片,而不是从正文中的图片直接导入添加,所以为了抓到原汁原味的图片,还是得到文章列表页中去。
为了更好的与Scrapy框架切合,我们希望获取到封面图的URL,并且将该链接放到Request函数中去,然后通过Request把这个封面图的URL传递到parse_detail函数中的response中去。此时就需要用到Request函数中的另外一个变量,叫meta,这个东东不经常出现,但是有时候也会用到,希望大家都可以掌握。
这个meta传递过来的是一个字典,主要是用解析函数之间传递值,常见的情况是:在parse中给item某些字段提取了值,但是另外一些值需要在另外一个parse函数(本例中是parse_detail函数)中提取,这时候需要将parse中的item传到parse2方法中处理,很明显无法直接给parse2设置外参数。Request对象接受一个meta参数,一个字典对象,同时Response对象有一个meta属性可以取到相应request传过来的meta。关于meta参数实现的具体步骤将在下篇文章奉上。
/小结/
本文主要介绍了Scrapy爬虫框架中meta参数的使用示例,介绍了理论部分。这篇文章属于热身篇,下篇文章,结合代码让大家有个完整的认识,希望对大家的学习有帮助。
想学习更多关于Python的知识,可以参考学习网址:http://pdcfighting.com/,点击阅读原文,可以直达噢~
------------------- End -------------------