3 Scrapy 爬取 (3) 循环多个页面
2017-11-10 本文已影响62人
法号无涯
从网页上获取下一页按钮的链接,并与网站根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函数