2012-02-03 25 views
0

我發現一個整潔的Ruby腳本來總結在Amazon.de完成所有購買(沒有其他的商店,如美國)給定年份: https://github.com/pwaldhauer/amazon-account-crawler擴展一個Ruby腳本機械化使用代理

安裝Ruby和後必要的Ruby Gems Highline和機械化我能夠運行腳本。但不幸的是,我在代理服務器後面,因此腳本失敗並出現「超時」錯誤。

我讀了很多,但沒有找到如何使用代理服務器。我試圖「設置」一個HTTP_PROXY環境變量,但仍然出現錯誤。我還使用了以下呼叫:

agent.set_proxy('127.0.0.1', '3128') 

但是,這並沒有奏效。我有這樣的感覺,HTTP代理工作,但在登錄後亞馬遜使用HTTPS,並失敗。 有人能告訴我一個簡單的方法如何告訴Mechanize使用HTTP和HTTPS代理服務器嗎?

+0

您可以使用https://github.com/apenwarr/sshuttle讓您使用的整個設備通過ssh tunnle運行。真的很容易使用。試一試。 – khelll 2012-02-03 08:58:38

回答

2

機械化https和代理有一個已知問題,您需要使用舊版本(1.0.0)才能使其運行。此外,該端口應該是一個數字而不是字符串。

+0

如何安裝這個舊版本?我嘗試過'gem install mechanize 1.0.0',但版本庫中沒有這樣的「gem」。 – asdrubael 2012-02-03 09:49:18

+0

gem install mechanize -v = 1.0.0 – pguardiario 2012-02-03 10:02:35

+0

非常感謝,工作正常,但現在出現了不同的錯誤: 'C:/Ruby193/lib/ruby/gems/1.9.1/gems/mechanize 1.0.0/lib /mechanize/form.rb:136:in'method_missing':undefined method'id' for#(NoMethodError) from(eval):4:in'block(2 levels)in forms_with '' 我不知道這是否仍然是連接問題,或者如果我需要重寫腳本以使用機械化版本1.0。 – asdrubael 2012-02-03 10:27:52