前言
学习知识是要一步一步来的,下面为大家带来点新知识,爬虫的Rules规则,就是对爬取的网页中的链接进行分析,提取出我们需要的继续爬下去的链接,继续爬取下去。
简析
当我们想要提取start_urls中的Url中的链接时,可以加一个Rules,用来提取,该Rules为继承CrawlSpider才有的规则,相比于继承Spider
下面我们先初识一下这个规则
1 | rules = [ |
Rule与LinkExtractor具体参数
Rule对象
Role对象有下面参数
link_extractor
:链接提取规则callback
:回调函数(如何处理)cb_kwargs
:附加参数,可以在回调函数中获取到follow
:是否对提取的网页进行进一步提取(默认:False)process_links
:处理所有的链接的回调,用于处理从response提取的links,通常用于过滤(参数为link列表)process_request
:链接请求预处理(添加header或cookie等)
LinkExtractor
LinkExtractor常用的参数有
allow
:提取满足正则表达式的链接deny
:排除正则表达式匹配的链接(优先级高于allow
)allow_domains
:允许的域名(可以是str
或list
)deny_domains
:排除的域名(可以是str
或list
)restrict_xpaths
:提取满足XPath选择条件的链接(可以是str
或list
)restrict_css
:提取满足css选择条件的链接(可以是str
或list
)tags
:提取指定标签下的链接,默认从a
和area
中提取(可以是str
或list
)attrs
:提取满足拥有属性的链接,默认为href
(类型为list
)unique
:链接是否去重(类型为boolean
)process_value
:值处理函数(优先级大于allow
)
代码实现和分析
1 | # -*- coding: utf-8 -*- |