【发布时间】:2019-04-16 13:36:35
【问题描述】:
我尝试使用类似问题的提示,但没有成功。 最终还是回到了起点,想请教一下。
我无法使用 scrapy splash 执行递归爬取过程,但在单个页面上执行此操作不会出现问题。我在要抓取的错误网址中看到问题:
2019-04-16 16:17:11 [scrapy.spidermiddlewares.offsite] DEBUG: Filtered offsite request to '192.168.0.104': <GET http://192.168.0.104:8050/************>
但链接必须是https://www.someurl.com/***************
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url, self.parse, meta={'splash': {'endpoint': 'render.html', 'args': {'wait': 0.5}}})
def parse(self, response):
***********
items_urls = ***********
for url in items_urls.extract():
yield Request(urlparse.urljoin(response.url, url), callback=self.parse_items, meta={'item': item})
def parse_items(self, response):
***********
yield item
【问题讨论】:
-
您可能在您的蜘蛛上配置了“allowed_domains”属性,并试图从该域之外请求一个 url。尝试删除与此类似的行并再次运行蜘蛛: allowed_domains = ['example.com']
-
@LuizRodriguesdaSilva 某个域上的所有页面。我认为在这种情况下我需要稍微调整一下 Splash Request,但我不知道如何。
标签: web-scraping scrapy