2015-09-01 60 views
2

我想從下面的網址刮取數據。但硒driver.get(url)失敗有時錯誤是[Errno 104] Connection reset by peer,有時[Errno 111] Connection refused在罕見的日子裏,它工作得很好和我的Mac與真正的瀏覽器相同的蜘蛛工作正常每一次。所以這和我的spider沒有關係。硒無頭瀏覽器webdriver [Errno 104]連接重置由對端

已經嘗試了許多解決方案,如等待頁面上的選擇器,隱式等待,使用硒請求喲傳遞適當的請求標頭等,但似乎沒有任何工作。

http://www.snapdeal.com/offers/deal-of-the-day 
https://paytm.com/shop/g/paytm-home/exclusive-discount-deals 

我使用pythonselenium & headless Firefox webdriver實現這一目標。操作系統是centos 6.5

注意:我有很多AJAX成功刮下一些重頁,有些在下面。

http://www.infibeam.com/deal-of-the-day.html, http://www.amazon.in/gp/goldbox/ref=nav_topnav_deals 

已經花了很多天試圖調試的問題沒有運氣。任何幫助,將不勝感激。

回答

7

經過幾天圍繞這個問題叮噹作響,終於找到原因。寫在這裏爲社區的利益。由於服務器上缺少RAM,無頭瀏覽器失敗,來自webdriver的奇怪錯誤消息是真實的pita

服務器直接運行了60天而沒有重新啓動,重新啓動它有竅門。增加了3次交換後,過去幾天沒有遇到問題。還安排了清理頁面文件緩存的任務(http://www.yourownlinux.com/2013/10/how-to-free-up-release-unused-cached-memory-in-linux.html)。

+0

救了我很多的期待 - 謝謝。你的意思是 – SteveJ

2

我一直在使用Selenium和chromedriver(python3)進行一段時間的刮取。有了最新的Google Chrome更新,我必須處理兩個問題。

1)錯誤上推出的webdriver:

解決辦法:我不得不添加 「無沙箱」 argumement。

chrome_options.add_argument( '無沙箱')

2)[錯誤104]連接由對等復位:

解。套接字和http請求似乎有問題。網頁內容太大或者您沒有足夠的時間加載頁面。至少這就是我的想法。 我將最大頁面加載時間設置爲60秒,它似乎工作正常。

driver.set_page_load_timeout(60)

我加webdrivers initialisations這也似乎有助於之間有一個小的延遲。

time.sleep(0.5)

+0

「--no-sandbox」?還是應該沒有兩個前面的連字符? – Anubis

相關問題