美文网首页head first Scrapy
3 Scrapy 爬取 (3) 循环多个页面

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

作者: 法号无涯 | 来源:发表于2017-11-10 18:02 被阅读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函数

    相关文章

      网友评论

        本文标题:3 Scrapy 爬取 (3) 循环多个页面

        本文链接:https://www.haomeiwen.com/subject/ayximxtx.html