【Scrapy 框架翻译】链接提取器(Link Extractors) 篇
版本号:Scrapy 2.4
文章目录
内容介绍
链接提取器是从响应中提取链接的对象。从对象LxmlLinkExtractor.extract_links返回匹配Link对象 的列表Response。链接提取器CrawlSpider通过一组Rule对象用于spider中。
实例化回调
def parse(self, response):
for link in self.link_extractor.extract_links(response):
yield Request(link.url, callback=self.parse)
链接提取器
from scrapy.linkextractors import LinkExtractor
LxmlLinkExtractor
class 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)
参数说明:
-
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属性, 元件等,所以LinkExtractor默认条空间字符。设置strip=False将其关闭(例如,如果要从允许前导/后缀空格的元素或属性中提取网址)。
Link
class scrapy.link.Link(url, text='', fragment='', nofollow=False)
链接对象表示LinkExtractor提取的链接。
参数说明:
-
url :锚标记中链接到的绝对URL。
-
text :锚标记中的文字。
-
fragment:网址中哈希符号后面的部分。
-
nofollow :指示rel标记标签属性中是否存在nofollow值。