scrapy rule follow的理解和应用

follow 是一个布尔(boolean)值,指定了根据该规则从response提取的链接是否需要跟进。 如果callback 为None,follow 默认设置为 True ,添加回调函数callback后为 False,不跟踪

一句话解释:follow可以理解为回调自己的回调函数

举个例子,如百度百科,从任意一个词条入手,抓取词条中的超链接来跳转,rule会对超链接发起requests请求,如follow为True,scrapy会在返回的response中验证是否还有符合规则的条目,继续跳转发起请求抓取,周而复始,如下图

                                                             

 

代码实现:

from scrapy.linkextractors import LinkExtractor
from scrapy.spiders.crawl import Rule, CrawlSpider


class BaiDuSpider(CrawlSpider):
    name = "baidu_spider"
    start_urls = ['https://baike.baidu.com/item/Python/407313?fr=aladdin']

    '''获取url'''
    rules = (
        Rule(LinkExtractor(restrict_xpaths='//*[@class="para"]//a')),
    )

    print(rules)

ps: 爬取百度百科时需要在setting中设置不遵守robots规则:  ROBOTSTXT_OBEY = False

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值