开发者社区> 中乘风> 正文

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

简介: rules = ( Rule(LinkExtractor(allow=r'WebPage/Company.*'),follow=True,callback='parse_company'), Rule(LinkExtractor(allow=r'WebPage/JobDetail.
+关注继续查看
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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
史上最全的文档地址列表
周末花了两天时间收集了几百个网站的文档地址,类型从前端到后端全部覆盖了,还有一些热门的技术,也添加进来了
5 0
【JQuery框架】JQuery对象和JS对象的区别和转换
【JQuery框架】JQuery对象和JS对象的区别和转换
3 0
【JQuery框架】五大选择器“全家桶”详解!!!
【JQuery框架】五大选择器“全家桶”详解!!!
5 0
【JQuery框架】超详细DOM操作看这一篇就够了!
【JQuery框架】超详细DOM操作看这一篇就够了!
4 0
Jarslink Demo Alibaba(教程 源码)
Jarslink Demo Alibaba(教程 源码)
4 0
软件测试流程
其实测试的流程这个描述不够准确, 在国际软件测试委员会的大纲《ISTQB认证测试工程师_FL大纲-2018版_V3_1》中 把这个测试的过程和步骤叫做 测试过程(test process ) 它又牵扯到 测试活动 和 测试策略 的概念 尽管没有统一的软件测试过程,但是有一些常见的测试活动,如果没有这些测试活动就不太可能实现既定的目标。这些测试活动就组成了一个测试过程。
6 0
成本节省 50%,10 人团队使用函数计算开发 wolai 在线文档应用
人们关注 wolai 独特的功能和舒适的用户的用户体验,更关注实现这些背后的技术架构。在一个晴朗下午,我们邀请了 wolai.com 的创始人马锐拉,跟我们聊聊 wolai 背后的 Serverless 架构。
4 0
管理 crontab 的开源工具
要开始使用 cron,你可以简单地在命令行输入 crontab -e,启动一个打开了当前 crontab(“cron table” 的缩写)文件的编辑器(如果你以 root 身份这样做,你访问的是系统 crontab)。
4 0
GAN对抗网络入门教程
A Beginner's Guide to Generative Adversarial Networks (GANs) https://skymind.ai/wiki/generative-adversarial-network-gan
4 0
+关注
中乘风
中乘风,生于海南,中国《英雄联盟》电子竞技职业选手,RNG战队上单。 2015年加入RNG战队并帮助队伍获得2017年LPL春季赛亚军、2017年LPL夏季赛亚军、2017年全球总决赛四强、2018年LPL春季赛冠军、2018年MSI季中赛冠军、RNG队伍2018英雄联盟洲际赛冠
27
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载