scrapy基础知识之 CrawlSpiders:
通过下面的命令可以快速创建 CrawlSpider模板 的代码:
scrapy genspider -t crawl spidername xx.com
LinkExtractors
class scrapy.linkextractors.LinkExtractor
Link Extractors 的目的很简单: 提取链接。
每个LinkExtractor有唯一的公共方法是 extract_links(),它接收一个 Response 对象,并返回一个 scrapy.link.Link 对象。
Link Extractors要实例化一次,并且 extract_links 方法会根据不同的 response 调用多次提取链接。
class scrapy.linkextractors.LinkExtractor(
allow = (),
deny = (),
allow_domains = (),
deny_domains = (),
deny_extensions = None,
restrict_xpaths = (),
tags = ('a','area'),
attrs = ('href'),
canonicalize = True,
unique = True,
process_value = None
)
主要参数:
allow
:满足括号中“正则表达式”的值会被提取,如果为空,则全部匹配。deny
:与这个正则表达式(或正则表达式列表)不匹配的URL一定不提取。allow_domains
:会被提取的链接的domains。deny_domains
:一定不会被提取链接的domains。restrict_xpaths
:使用xpath表达式,和allow共同作用过滤链接。rules
在rules中包含一个或多个Rule对象,每个Rule对爬取网站的动作定义了特定操作。如果多个rule匹配了相同的链接,则根据规则在本集合中被定义的顺序,第一个会被使用。
class scrapy.spiders.Rule(
link_extractor,
callback = None,
cb_kwargs = None,
follow = None,
process_links = None,
process_request = None
)
link_extractor
:是一个Link Extractor对象,用于定义需要提取的链接。callback
: 从link_extractor中每获取到链接时,参数所指定的值作为回调函数,该回调函数接受一个response作为其第一个参数。注意:当编写爬虫规则时,避免使用parse作为回调函数。由于CrawlSpider使用parse方法来实现其逻辑,如果覆盖了 parse方法,crawl spider将会运行失败。
follow
:是一个布尔(boolean)值,指定了根据该规则从response提取的链接是否需要跟进。 如果callback为None,follow 默认设置为True ,否则默认为False。process_links
:指定该spider中哪个的函数将会被调用,从link_extractor中获取到链接列表时将会调用该函数。该方法主要用来过滤。process_request
:指定该spider中哪个的函数将会被调用, 该规则提取到每个request时都会调用该函数。 (用来过滤request)
最新文章
- 十DHT11
- Lock VS Monitor
- Open Credit System
- centos7 最小化安装 无 ifconfig,netstat 的安装
- POJ 3264 Balanced Lineup 线段树 第三题
- Why we made vorlon.js and how to use it to debug your JavaScript remotely
- MYSQL分页limit速度太慢优化方法
- mybatis中怎样使用having?
- cf1051d 简单的状态压缩dp
- 以英雄联盟的方式建模,谈对依赖注入(DI)的理解以及Autofac的用法(一)
- 总结---Python中的面向对象!
- 【Linux】特殊符号$$,$#,$?等解释
- python 直接将list 整体转化-----------map()
- Redis(十四):主从复制
- 小白系列-免费广告路由器web认证设置(2)
- python的__init__和__new__
- input取值
- pig语法学习 FOREACH GENERATE group AS
- 使用phppgadmin 遇到的小问题
- rac_udev建立磁盘方式安装grid时不识别磁盘
热门文章
- WPF 绑定父类属性
- Kubernetes使用集群联邦实现多集群管理
- 工具:sql server profiler(分析器)
- WCF SOAP用法
- jquery通过索引获取元素
- socket上http协议应用(使用socket进行http通信的例子,准备好报头以后,简单read/write就可以了)
- 《芒果TV》UWP版利用Windows10通用平台特性,率先支持Xbox One平台
- duilib菜单开发遇见“0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突”
- QToolBar也是QWidget,可以放在QWidget的中间
- 创业游戏模拟器 Startup 游戏试玩