bounty还有4天到期。此问题的答案有资格获得+50声望奖励。parastoo正在寻找一个答案从一个有信誉的来源。
我打算刮Pararius.nl作为一个实践与scrapy但当我开始爬行它返回fairlane保护,我怎么能通过它?我需要工具吗?请举一个例子
def parse(self, response):
url = 'https://www.pararius.nl/{deal_type}/nederland/p-{page}/'
for deal_type in ['huurwoningen', 'koopwoningen']:
for i in range(1, 2):
yield scrapy.Request(url.format(deal_type=deal_type, page=i), callback=self.parse_pages,cookies=self.cookies,
headers=self.h, method='GET', cb_kwargs={'deal_type': deal_type})
def parse_pages(self, response, deal_type):
print(response.url)
return
1条答案
按热度按时间rryofs0p1#
您应该尝试使用Selenium绕过您提到的fairlane保护(如果这是代码的问题)。
首先,安装scrapy-selenium包:
然后,修改Scrapy spider以使用SeleniumRequest而不是常规的Scrapy。
在
.start_requests()
方法中,我们使用SeleniumRequest
,wait_time
参数为3秒。这告诉Selenium在继续之前等待3秒,给页面时间加载并绕过fairlane保护。**注意:**我不确定
.parse_pages()
方法的缩进级别,所以我只是按照我认为它会工作的方式编写代码。另外,我不能正确地测试这段代码,因为它是作为类的一部分编写的,而您没有给予完整的代码以供参考。如果不行就告诉我。