2017-07-27 35 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

現在,它的作品!

相關問題