2010-04-09 64 views
4

嗨即時建設一個使用python 2.5和beautifulsoup刮板 ,但即時通訊stuble問題...網頁的一部分產生 用戶點擊某個按鈕後,啓動ajax請求通過使用適當的參數調用特定的javacsript函數beautifulsoup和機械化,以獲得ajax調用結果

有沒有一種方法來模擬用戶交互並獲得此結果?我碰到過一個機械化模塊,但在我看來,這主要是用來處理表單工作...

我將不勝感激任何鏈接或一些代碼樣本 感謝

回答

6

行,所以我想到這一點......這是很簡單的,我意識到,我可以使用的urllib,ulrlib2的組合和beautifulsoup

import urllib, urllib2 
from BeautifulSoup import BeautifulSoup as bs_parse 

data = urllib.urlencode(values) 
req = urllib2.Request(url, data) 
res = urllib2.urlopen(req) 
page = bs_parse(res.read()) 
+2

我面臨同樣的問題...請幫助... 什麼是'價值' – Umair 2014-11-08 17:04:58

3

不,你不能這樣做容易。據我所知你的選擇,最簡單的第一:

  1. 閱讀AJAX javascript代碼自己,作爲一個人的編程,瞭解它,然後編寫Python代碼模擬了AJAX用手調用。您還可以使用一些捕獲軟件來捕獲實時請求/響應,並嘗試用代碼複製它們;
  2. 使用selenium或其他瀏覽器自動化工具在真實的Web瀏覽器上獲取頁面;
  3. 使用像spidermonkeypyv8這樣的python javascript runner運行javascript代碼,並將其掛接到您的HTML dom副本;
+0

喜,第一個選項不會是那麼容易,因爲javascript是在包裝版本 謝謝你的頭擡頭我會看看它的第一件事tommorow – nabizan 2010-04-09 20:07:55

+0

@nabizan:這就是爲什麼我也建議使用捕獲軟件選項1 – nosklo 2010-04-09 22:57:18

+0

嗨,所以經過一點挖掘解壓JavaScript後,我發現我應該怎麼稱呼以及如何。比較容易(詳見我的回答) – nabizan 2010-04-10 13:04:31