【问题标题】:Jsoup removing elements automatically?Jsoup自动删除元素?
【发布时间】:2014-08-18 19:59:52
【问题描述】:

我已经使用 Jsoup 有一段时间了,但是我遇到了一个错误,即 Jsoup 自动删除“table”元素并且找不到任何解决方法...

Document doc = Jsoup.connect("http://www.planet-series.tv/dr-house/").get();
System.out.println(doc);

如果导航到这段代码中的链接,可以看到有多个元素“table”(例如:在“Saison 01 (VF)”下,有22个包含“Episode x”的table元素) ,但它们在 JSOUP 输出中不存在...

预期

结果

我试图用一个简单的HttpClient 获取文档,打印它(表格元素在那里),用 Jsoup 解析它,重新打印(表格元素不见了)所以我知道这不是 Javascript 问题或其他什么,而 Jsoup 是确实造成了。

你能告诉我我错过了什么吗?

【问题讨论】:

    标签: jsoup


    【解决方案1】:

    某些网站会根据用户代理数据(浏览器附加到请求的标头以告知网站浏览器类型)执行优化/限制。如果未设置用户代理,某些网站将阻止内容。

    您可以尝试使用简化的 mozilla 用户代理来模拟真实的浏览器并获取数据:

    Document doc = Jsoup.connect("http://www.planet-series.tv/dr-house/")
                    .userAgent("mozilla").get();
    System.out.println(doc);
    

    如果这不起作用,并且您确实遇到了 JSoup 的错误,只需使用 HttpClient 获取数据,然后使用以下命令创建文档:

    Document doc = Jsoup.parse(html);
    

    其中html 是包含页面内容的字符串。

    【讨论】:

    • 我尝试使用 HttpClient(见最后一段)和 userAgent:Document doc = Jsoup.parse(html);在这里不起作用(如果我打印 html 表就在那里,如果我打印 doc 表就​​不见了)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 2020-05-30
    • 1970-01-01
    相关资源
    最近更新 更多