美文网首页
Scrapy笔框架--通用爬虫Broad Crawls(中)

Scrapy笔框架--通用爬虫Broad Crawls(中)

作者: 中乘风 | 来源:发表于2018-07-13 16:39 被阅读0次
    rules = (
            Rule(LinkExtractor(allow=r'WebPage/Company.*'),follow=True,callback='parse_company'),
            Rule(LinkExtractor(allow=r'WebPage/JobDetail.*'), callback='parse_item', follow=True),
        )
    

    Rule的参数用法

    跟踪Rule代码看它的参数:

    link_extractor, callback=None, cb_kwargs=None, follow=None, process_links=None, process_request=identity
    
    • link_extractor完成url的抽取,它就是交给CrawlSpider用
    • callback是回调函数
    • cb_kwargs是传递给link_extractor的参数
    • follow的意思是满足Rule规则的url是否跟进
    • process_links在Scrapy笔记--通用爬虫Broad Crawls(上)里面有代码演示,主要处理url
    • process_request可以对request进行预处理,就像process_links处理url一样,编写一个函数方法进行处理

    LinkExtrator的参数用法,跟踪代码看参数:

    allow=(), deny=(), allow_domains=(), deny_domains=(), restrict_xpaths=(),
                     tags=('a', 'area'), attrs=('href',), canonicalize=False,
                     unique=True, process_value=None, deny_extensions=None, restrict_css=(),
                     strip=True
    
    • allow=(r'/jobs/\d+.html')中放置的是一个正则表达式,如果你满足正则,就对其进行提取
    • deny是allow的反向
    • allow_domains=('www.lagou.com')是指在指定域名www.lagou.com下的才进入处理
    • deny_domains是allow_domains的反向
      restrict_xpaths、restrict_css可以通过xpath或者css进一步限定url,比如当前页面有很多符合条件的url,但是我希望限定某个范围进行取值,则可以通过它来指定范围区域,如:
    restrict_css('.jon-info') 
    

    是限定

    <div class=jon-info>中间的范围</div>

    • tags=('a', 'area'), attrs=('href',)是指默认通过a标签和area标签找到里面的href

    相关文章

      网友评论

          本文标题:Scrapy笔框架--通用爬虫Broad Crawls(中)

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