2017-07-27 36 views
0

如何停止将目标网址重定向至另一个具有验证码的网站确认页面?Scrapy:使用验证码重定向至确认页面

这里是我下面的代码:

yield scrapy.Request(meta={'handle_httpstatus_list': [302], 'dont_redirect': True, 'redirect_enabled':False},url=url, callback=self.profileCategoryPages) 

现在它重定向我从网页上的另一个网页。我不知道它为什么会发生。当我第一次运行它时没有发生,但是当我第二次运行并且一次又一次运行时,我得到的只是它重定向到另一个网页。

Tagget页: http://www.profilecanada.com/browse_by_category.cfm/

重定向到这个页面: http://www.profilecanada.com/confirmReqPage.cfm

谢谢您的帮助!

+0

你能发布抓取日志吗?您可以通过'scrapy crawl spider --logfile output.log'或'scrapy crawl spider 2> 1 | tee output.log'命令(后者将输出放到屏幕和文件中)。您可能未被重定向,但该网站已将您标记为机器人,并向您展示catpcha-gated内容,因为它不信任您。 – Granitosaurus

+0

是的。刚刚发现我被阻止访问该网站。你有什么建议先生?谢谢。 –

+0

这是一个非常广泛的问题。首先,你需要弄清楚你为什么被验证码。他们为什么认为你是机器人?你的请求看起来是人类吗?从检查用户代理标题和其他标题开始是一个好主意。他们认为你是一个机器人,因为你爬行速度很快?那么你需要添加一些延迟或获得一些代理。 – Granitosaurus

回答

0

我认为我被阻止的原因是我从网站请求页面时没有延迟值。此外,我创建了蜘蛛作为独立的刮板程序,因此,没有settings.py可以修改。我所做的是这样的:

  1. 运行创建刮刀作为projecy:

    scrapy startproject命令

  2. 加了我以前创建的程序刮刀这是我的新创建的项目中的蜘蛛文件夹

  3. Modiy的settings.py:

    DOWNLOAD_DELAY =, CONCURRENT_REQUESTS = 20, CONCURRENT_REQUESTS_PER_DOMAIN = 1, DOWNLOAD_TIMEOUT = 30

现在,它的作品!

相关问题