2013-01-11 68 views
1

我喜歡硒,我喜歡scraperwiki,但不知何故,我不能讓他們一起正常工作。我試圖在兩種方法打開一個網站,硒對scraperwiki,這兩種方法已經從教程得到:如何讓硒在scraperwiki上工作

import selenium 
sel = selenium.selenium("localhost",4444,"*firefox", "http://www.google.com") 
sel.open("http://google.com") 

這是行不通的。它給了我下面的錯誤:

error: [Errno 111] Connection refused 

而且也沒有這樣的:

from selenium import webdriver 
browser = webdriver.Firefox() 

哪個給出了另一個錯誤:

/usr/lib/python2.7/subprocess.py:672 -- __init__((self=<subprocess.Popen object at 0x1d14410>, args=[None, '-silent'], bufsize=0, executable=None, stdin=None, stdout=-1, stderr=-1, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)) 
AttributeError: 'NoneType' object has no attribute 'rfind' 

有誰看到這一個合乎邏輯的理由?

scraperwiki上的文檔指出seleneium是「只有在Selenium服務器指向它時纔在ScraperWiki中有用」。我不知道他們的意思是什麼,但我認爲這可能是問題的原因。任何幫助將不勝感激。

+1

你是什麼意思,不起作用?你會得到一個錯誤,什麼樣的錯誤,等等... – root

回答

1

Selenium不僅僅是你正在使用的Python庫,它還有一個單獨的軟件,在你的問題中提到的Selenium服務器,代表你的代碼與瀏覽器交互。

這行代碼

sel = selenium.selenium("localhost",4444,"*firefox", "http://www.google.com") 

嘗試連接到Selenium服務器,以便它可以發送命令到瀏覽器(Firefox)的代碼要求它。腳本上下文中的「localhost」是不運行硒服務器的ScraperWiki服務器之一。

你需要做的就是下載http://selenium.googlecode.com/files/selenium-server-standalone-2.28.0.jar和不同的服務器上安裝它,與

java -jar selenium-server-standalone-2.28.0.jar 

運行它,那麼你可以改變你的代碼以指向你正在運行的服務器。它變得更加複雜,因爲ScraperWiki限制了你可以連接到互聯網上的端口,所以不需要使用端口4444,你可能需要使用另一個端口(可能是端口80)。

總而言之,我認爲這可能不是一個可行的解決方案,你可能會更好,只需在python,php或ruby中編寫你的刮板。

+0

感謝您的答覆,但我希望硒工作的原因是,因爲在url返回之前javascript被加載的事實。 Urllib不會讓javascript加載,它立即返回html,缺少一些內容。你會知道另一種方法/模塊來繞過這個問題嗎? – cantdutchthis

+0

這將與ScraperWiki協同工作嗎?不,我恐怕沒有。 – Ross