3 Scrapy 爬取 (3) 循环多个页面

从网页上获取下一页按钮的链接,并与网站根url相连得出绝对路径

In [24]: next_page_url = response.xpath('//*[@class="next"]/a/@href').extract_first()

In [25]: next_page_url
Out[25]: u'/page/2/'

In [26]: response.urljoin(next_page_url)
Out[26]: u'http://quotes.toscrape.com/page/2/'

对应的在spider的parse 函数末尾加上这些命令

        next_page_url = response.xpath('//*[@class="next"]/a/@href').extract_first()
        absolute_next_page_url = response.urljoin(next_page_url)
        yield scrapy.Request(absolute_next_page_url)

程序中我们只是把获取到的数据存入变量text、author、tags 中,并没有把他们存储起来。为了以特定格式存储,还需要用yield语句。将原先的print语句改成yield后可以通过命令
scrapy crawl quotes -o item.csv将多个items写入item.csv 文件中。

需要恶补内容

这里使用了yield语句和scrapy.Request(url)
并不知道yield语句是个什么,那个request最后又是怎么被处理的,怎么会又调回到那个 parse函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容