我目前正在将 Scrapy 用于我在大学机构存储库上的项目,我需要在其中获取每所大学的外部链接。有没有办法让我拒绝某些 URL,例如“google.com”和“twitter.com”。以下是我目前所拥有的。我是这些的新手,所以任何帮助将不胜感激。谢谢!
import scrapy
class UtmSpider(scrapy.Spider):
name = 'utm'
start_urls = ['http://eprints.utm.my/id/eprint/']
def start_requests(self):
yield scrapy.Request('http://eprints.utm.my/id/eprint/', self.parse)
def parse(self, response):
for href in response.xpath('//a/@href').getall():
yield scrapy.Request(response.urljoin(href), self.parse)
请您参考如下方法:
如果您的蜘蛛很简单,那么 Swift 的解决方案就可以正常工作。 如果你的蜘蛛/蜘蛛有很多代码,每次你想发出请求时检查 url 会污染你的代码。在这种情况下,您可以使用 DownloaderMiddleware 管道。 https://docs.scrapy.org/en/latest/topics/downloader-middleware.html 如果您搜索“IgnoreRequest”,您会找到有关如何实现能够丢弃某些请求的 DownloaderMiddleware 的说明。
