Python3 的 Scrapy 爬虫框架 中数据爬取过程中链接提取器是从响应中提取链接的对象。从对象LxmlLinkExtractor.extract_links 返回匹配 Link对象的列表Response。链接提取器CrawlSpider通过一组Rule对象用于spider中。
Scrapy 版本:2.6+

# 实例化回调每一个链接信息def parse(self, response): for link in self.link_extractor.extract_links(response): yield Request(link.url, callback=self.parse)
链接提取器方法
LxmlLinkExtractor 函数方法
from scrapy.linkextractors import LinkExtractorclass scrapy.linkextractors.lxmlhtml.LxmlLinkExtractor( allow=(), deny=(), allow_domains=(), deny_domains=(), deny_extensions=None, restrict_xpaths=(), restrict_css=(), tags=('a', 'area'), attrs=('href'), canonicalize=False, unique=True, process_value=None, strip=True)
应用举例
def parse(self, response): link_extractor = LinkExtractor(allow=(r'xxxxx/\s+/#39;,), ) links = link_extractor.extract_links(response) print(links) for link in links: print(link.url, link.text)

参数说明
- allow(str或list):URL必须匹配的单个正则表达式(或正则表达式列表)才能被提取。如果未指定(或为空),则它将匹配所有链接。
- deny(str或list):URL必须匹配的单个正则表达式(或正则表达式列表)才能被排除(即不提取)。它优先于allow参数。如果未指定(或为空),则不会排除任何链接。
- allow_domains(str或list):包含域的单个值或字符串列表,将在提取链接时考虑使用
- deny_domains(str或list):包含域的单个值或字符串列表,将不会考虑提取链接
- deny_extensions(list):包含扩展名的单个值或字符串列表,在提取链接时应将其忽略。如果未给出,则默认为scrapy.linkextractors.IGNORED_EXTENSIONS。包括7z,7zip,apk,bz2,cdr,dmg,ico,iso,tar,tar.gz,webm,和xz。
- strict_xpaths(str或list):是一个XPath(或XPath的列表),定义了响应中应从中提取链接的区域。如果定义则仅扫描那些XPath选择的文本以查找链接。
- strict_css(str或list):CSS选择器(或选择器列表),用于定义响应中应从中提取链接的区域。
- limit_text(str或list):链接的文本必须匹配才能提取的单个正则表达式(或正则表达式列表)。如果未指定(或为空),则将匹配所有链接。如果给出了正则表达式列表,则如果链接至少匹配一个链接,则将提取该链接。
- tags(str或list):提取链接时要考虑的标签或标签列表。默认('a','area')
- attrs(list):查找要提取的链接时应考虑的一个属性或属性列表(仅适用于tags参数中指定的那些标记)。默认为('href')
- canonicalize(bool):将每个提取的URL规范化(使用w3lib.url.canonicalize_url)。默认为False。canonicalize_url是用于重复检查的;它可以更改在服务器端可见的URL,因此对于具有规范化URL和原始URL的请求,响应可以有所不同。如果使用LinkExtractor跟踪链接,则保留默认值会更可靠canonicalize=False。
- 唯一(bool):是否应将重复过滤应用于提取的链接。
- process_value(collections.abc.Callable):该函数接收从标记中提取的每个值和扫描的属性,并且可以修改该值并返回一个新值,或者返回None以完全忽略该链接。如果未给出,则process_value默认为。
- strip(bool):是否从提取的属性中删除空格。根据HTML5标准,前导和尾部空格必须从被剥离href的属性,以及许多其他的元素,src属性
,
