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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容