Jsoup没有得到完整的HTML

时间:2015-08-18 22:49:34

标签: java jsoup

我正在尝试使用Jsoup来解析网址http://www.threadflip.com/shop/search/john%20hardy

中的html

Jsoup希望只从行

获取数据
<![CDATA[ window.gon= ..............

有谁知道为什么会这样?

Document doc = Jsoup.connect("http://www.threadflip.com/shop/search/john%20hardy").get();

1 个答案:

答案 0 :(得分:1)

您尝试解析的网站通过AJAX调用加载其大部分内容异步。 JSoup不解释Javascript,因此不像浏览器那样。似乎商店通过调用他们的api填充:

<form>
    <label for='qpInputdata'>No Selection</label>
    <input id="qpInputdata" class="form-control
       name="xCaasType" ng-model="fData.xNone" type="radio"
       ng-value="true" value="true">
    <label for='qpInputdata'>Select This One</label>
    <input id="qpInputdata" class="form-control
        name="xCaasType" ng-model="fData.xNotNone" type="radio"
        ng-value="true" value="true">
</form>

因此,您可能需要直接加载API Url才能阅读所需内容。请注意,响应是JSON,而不是HTML,因此JSoup html解析器在这里没有多大帮助。但是有很棒的JSON库可用。我使用JSON-Simple。

或者,您可以切换到实际远程控制真实浏览器的Selenium webdriver。这应该可以轻松访问页面中的所有项目。