Scrapy Splash递归爬网不起作用

时间:2019-04-16 13:36:35

标签: web-scraping scrapy

我尝试使用类似问题的技巧,但没有成功。 最后,我回到起点,想请教您。

我无法执行带有刮擦飞溅的递归爬网过程,但是在单个页面上没有问题。我看到了要抓取的错误网址中的问题:

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

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

只需删除一个public onChange(event: { target: { name: keyof IAddPlayerFormState ; value: any; }; }) 模块并将其更改为一个简单的字符串,例如urlparse.urljoin(response.url, url)

现在所有链接都是正确的,并且爬网过程可以正常工作。

但是现在我在抓取循环方面遇到了一些麻烦,但这是另一个问题:)