2013-03-24 82 views
0

我試圖抓取一些在後臺運行AJAX的網頁。使用python和Selenium,我已經得到了加載網頁,輸入數據到表單,點擊提交和等待。在這一點上,我試圖抓住JSON格式的數據,但this文章建議讓JSON身體不可能。我試圖自己查看Selenium代碼,以便讓它返回所有內容,但我沒有多少運氣。任何一個遇到過類似問題並且有如何解決它的建議?我不必使用硒(或蟒蛇) 謝謝!使用Selenium和Python進行Web瀏覽:捕獲JSON主體

回答

0

在這種情況下,您應該能夠直接獲取JSON。 JSON位於here。您可以使用firefox和firebug來檢查XHR請求以找到它。

0

我通過查看網站正在執行的ajax調用(在源代碼中)來做到這一點。這通常是一個POST(有時是一個GET)。然後我cURL(PHP)或urllib2(Python)那個URL +發送所需的數據。這會返回body,包括我的JSON。

+0

我喜歡這樣做,但該網站使用JQuery,所以這就是爲什麼我首先使用Selenium做它。你有沒有遇到過這樣的情景? – 2013-03-24 09:48:22

+0

這很容易做到。如果需要,您可以注入一些JavaScript來公開JSON。不過,這是根據個案情況而定的。如果您可以發佈您的網址,則可以進一步評論。 – user1609452 2013-03-24 10:06:47

+0

@ user1609452當然可以!網址如下。我試圖提取日期和價格。正如你所看到的,頁面加載了一段時間。使用Firebug我可以看到JSON加載,而這正是我想要捕獲的。我在想這應該不會太難... http://www.celebritycruises.com/search/vacationSearchResults.do?wuc=USA#isWidget=false&dest=ANY&sailStartDate=ANY&sailEndDate=ANY&ship=ANY&port=ANY&duration=ANY&includeAdjascentPorts = Y&promoid =&promoType =&promotionTypeId =&priceProgram =&sortBy = 4&STARTROW = 0&計數= 10&cruiseType = CO&cruiseInt = Y&isCrieriaExcluded =假 – 2013-03-24 10:39:54