LinkExtractor路由提取器
用于提取页面全部的ur,返回一个列表,每一个元素都是一个 Link 对象,即提取到的一个链接
一般结合规则解析器来使用
rules = (
Rule(LinkExtractor(allow=r"/info/\d+"), callback='parse_item', follow=False),
)
-
allow
allow 接收一个正则表达式或一个正则表达式列表,提取绝对 url 与正则表达式匹配的链接,如果该参数为空(默认),就提取全部链接。 -
deny
接收一个正则表达式或一个正则表达式列表,与 allow 相反,排除绝对 url 与正则表达式匹配的链接。
# allow 和 deny一起使用
link_chapter = LinkExtractor(allow=r"/chapter/\w+", deny=r"/chapter/\d+/")
# 提取chapter后面不是纯数字的全部链接
-
allow_domains
接收一个域名或一个域名列表,提取到指定域的链接。 -
deny_domains
接收一个域名或一个域名列表,与 allow_domains 相反,排除到指定域的链接。 -
restrict_xpaths
接收一个 XPath 表达式或一个 XPath 表达式列表,提取 XPath 表达式选中区域下的链接。 -
restrict_css
接收一个 CSS 选择器或一个 CSS 选择器列表,提取 CSS 选择器选中区域下的链接。 -
tags
接收一个标签(字符串)或一个标签列表,提取指定标签内的链接,默认为 ['a', 'area'] 。 -
attrs
接收一个属性(字符串)或一个属性列表,提取指定属性内的链接,默认为[‘href’]。 -
process_value
接收一个形如 func(value) 的回调函数。如果传递了该参数,LinkExtractor 将调用该回调函数对提取的每一个链接(如 a 的 href )进行处理,回调函数正常情况下应返回一个字符串(处理结果),想要抛弃所处理的链接时,返回 None。
# 查看LinkExtractor提取到url
links = LinkExtractor(allow=r"/info/\d+")
result = links.extract_links(response)
浙公网安备 33010602011771号