我想创建一个拒绝规则(动态)...拒绝在域前面的任何内容。
示例:
https://blog.example.com
https://video.example.com
https://jp.example.com
https://de.exp.com
...
等等。
我试过这样但是它没有像预期的那样工作:
domain = 'example.com'
rules = [Rule(LinkExtractor(deny=(r"[a-zA-z\.]("+ domain +")")),
callback="parse_page",
follow=True)]
基本上否认域名前面的任何内容......除了 https://
答案 0 :(得分:1)
在你的情况下,我认为它应该如下工作:
rules = [Rule(LinkExtractor(deny='.*' + domain + '.*',
callback="parse_page",
follow=True)]
对于动态链接,您可以在tldextract
函数内的response.url上使用parse
。例如:
import tldextract
deny_regex = '.*' + tldextract.extract(url).domain + '.*'