仅允许Scrapy内部链接
我有一份包含3000个网址的列表,想要从中提取信息。
我希望在每个网址上深入抓取三层内容,但我不想访问外部网址,只想抓取我开始列表中的域名内的链接。
我明白如果只有几个网址,我可以简单地把allowed_domains
列表填上。
但是当网址数量达到3000时,allowed_domains
列表就太大了,Scrapy处理不了(据我所知,它会把这个列表变成一个复杂的正则表达式),所以就出问题了……
有没有什么好的建议呢?
在“规则”列表中添加一些内容可能会有帮助。rules = (Rule(SgmlLinkExtractor(allow = (<local_links_only??>)) ,callback = 'parse_item'),)
或者在外部中间件中,有没有办法获取到引用链接?
或者把任务分批处理?一次处理50个网址?有没有什么方法可以实现这样的功能——我看到有start_requests
,但没有类似finish_requests
的回调可以用来重新填充start_urls
列表?
谢谢!