2011-10-26 35 views
0

所以,讓我們說,我想創造的東西,回覆一定的「哈希標籤關鍵詞」的鳴叫在Twitter上(例如「#FirstWorldProblems」),我有一個腳本,看起來像這樣:在使用DHTML,AJAX等的網站上使用Python機械化?

# apply settings, create a mechanize.Browser, etc. 

login() # log into twitter 

# at this point we've logged into twitter, now, we will perform navigate to their search page and run a search query: 
br.open('http://twitter.com/search?q=' + hashtag) 
print(br.response().read()) # print the response 

所以,我上面提到的是一種簡化版本,可以快速到達現場,給我帶來麻煩。

我設置了一個瀏覽器,登錄到twitter,都沒有問題。但是,然後我運行搜索hashtag(使用br.open),然後打印響應。

在Twitter上,只有當您將鼠標懸停在特定鏈接上並導致出現「#」(因爲它會打開一個彈出窗口的東西,您可以在其中輸入您的回覆)時,纔會顯示「回覆」鏈接,如何點擊「回覆」鏈接,因爲它沒有出現在回覆中?

+1

你可能想使用Twitter API:https://dev.twitter.com/docs/api – dmedvinsky

回答

2

如果您的問題實際上只是訪問Twitter,dmedvinsky可能是正確的。但是,如果你真的希望能夠抓取網站(同時允許他們的JavaScript像平時一樣運行......),你可能會想要一些更強大的東西。

雖然這是很多的包袱,但我強烈要求你抓住Qt,PySide並熟悉QWebKit。你可以從Python驅動一個「真正的」網絡瀏覽器,並獲得人們所期望的所有好處(和問題)。但是,到目前爲止,這是我發現做你所問的最好最乾淨的方法。

+0

你也可以檢查出[硒(HTTP://seleniumhq.org/):它直接驅動Web瀏覽器,所以如果您可以使用普通瀏覽器(我希望您可以)在網站上做某些事情,則可以使用Selenium自動執行此操作。 – jro

+1

Selenium需要更多的努力,更多的「測試」導向,不能無頭奔跑。它也是用Java編寫的一個功能非常強大的API。例如,您無法爲傳輸的頁面或HTTP結果代碼獲取HTTP標頭。你可以用Python來做很多奇特的事情來驅動WebKit。而且,我的意思並不是要吐槽硒,這非常有用! – synthesizerpatel

+1

感謝您的迴應!它讓我更加詳細地研究了QWebKit ......看起來像是Selenium的一個非常好的選擇! – jro