scrapy爬虫起步(5)--又一个多页面抓取的方法

本文介绍了如何在Scrapy中使用BaseSpider实现多页面抓取,以豆瓣小组为例,通过提取分页地址并封装为Request进行回调。虽然每个分页地址会被多次返回,但Scrapy内部进行了去重处理,避免了死循环,保证了爬取的正确性。相较于CrawlSpider的Rule,直接使用BaseSpider的方法相对简单。
摘要由CSDN通过智能技术生成

2015-06-23更新:
之前写这篇的时候还没有遇到具体的场景,只是觉得有这样一种方法就记下来了。
今天刚好遇到这个需求,要抓取一个BBS的内容,板块主页只显示了文章标题、作者和发表时间,需要做的是根据时间过滤,抓取每天最新的内容。利用Rule规则进行URL提取后只保留了链接地址,而失去了上下文信息(发布时间),如果要过滤只能是在抓取链接内容之后再获取时间,实际上造成不必要的浪费。使用此篇文章的方法可以在抓取链接之前就过滤,避免了无用数据的抓取。


上上篇scrapy爬虫起步(3)– 利用规则实现多页面抓取给出了利用CrawlSpider的Rule实现多页面抓取的方法,实际上直接利用BaseSpider也能实现多页面抓取。
具体思路:还是以我们的豆瓣小组为例吧,豆瓣社科小组,我们将首页地址作为start_url参数,从页面源码找到其余分页,如下:

   <div class="paginator">
        <span class="prev">&lt;前页</span>         
        <span class="thispage" data-total-page="9">1</span>          
        <a href="http://www.douban.com/group/explore?start=20&amp;tag=社科" >2</a>   
        <a href="http://www.douban.com/group/explore?start=40&amp;tag=社科" >3</a>
        <a href="http://www.douban.com/group/explore?start=60&amp;tag=社科" >4</a>      
        <a href="http://www.douban.com/group/explore?start=80&amp;tag=社科" >5</a>
        <a href="http://www.douban.com/group/explore?start=100&amp;tag=社科" >6</a>
        <a href="http://www.douban.com/group/explore?start=120&amp;tag=社科" >7</a>
        <a href="http://www.douban.com/group/explore?start=140&amp;tag=社科" >8</a>
        <a href="http://www.douban.com/group/explore?start=160&amp;tag=社科" >9</a>
        <span class="next">
            <link rel="next" href="http://www.douban.com/group/explore?start=20&amp;tag=社科"/>
            <a href="http://www.douban.com/group/explore?start=20&amp;tag=社科" >后页&gt;</a>
        </span>
    </
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值