2013-03-24 41 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

相关问题