2009-12-20 64 views
2

我知道標題不是很清楚,所以我舉個例子: 有網站A和網站B,讓我們說他們是金融網站。我只需要一個網站(關於意大利比薩報價的網頁),比較一些價值,並知道在哪裏和何時以較高的價格出售意大利披薩。 網站A的一切都非常簡單,因爲它不使用JavaScript並使用瀏覽器並點擊語音菜單「意大利>意大利比薩餅」,我找到了我需要的www.siteA.com/italy/italianPizzaValues網址。 相反,當我瀏覽網站B時,點擊語音菜單意大利將重定向到www.siteB.com/italy.do並單擊意大利菜單上的意大利麪和披薩等聲音不會改變網址,而只是調用JavaScript函數(通常非常複雜)。 因此,對於站點A,我使用libcurl下載頁面www.siteA.com/italy/italianPizzaValues,然後解析它。我應該如何處理網站B以獲得相同的結果並知道我的B站點的意大利披薩值?我如何獲得javascript生成的html?

回答

5

The Productive Programmer,尼爾福特建議使用Selenium爲非測試目的,如你的。 Selenium通過自動與Web瀏覽器進行交互來工作。它是爲測試目的而設計的,但可以像Neal Ford所建議的那樣用於其他目的。使用Selenium IDE,您可以記錄與網頁的交互,引用HTML元素(包括由javascript呈現的元素),然後將生成的代碼導出爲幾種高級編程語言之一(Java,.Net,PHP,Python,Perl或紅寶石)。

+1

現在很酷。 – 2009-12-20 11:58:03

1

在您開始模擬真實瀏覽器並執行JavaScript之前,請嘗試使用網絡監視器在真實瀏覽器中訪問相關頁面。在'Net'選項卡上打開Firebug的Firefox是一個,或者IE的Fiddler。

查看點擊'Pizza'時發生的請求和響應,看看是否有明顯的XMLHttpRequest似乎包含您正在查找的數據。如果是這樣,那麼只需提出一個請求就會快得多。

相關問題