当前位置: 首页 > 知识库问答 >
问题:

无法使用Jsoup解析url的完整html

施学
2023-03-14

Jsoup库未解析给定URL的完整html。URL的原始html中缺少一些分区。

有趣的事情:http://facebook.com/search.php?init=s:email&q=somebody@gmail.com&type=users

如果您在jsoup的官方站点http://try.jsoup.org/中给出了上面提到的url,它通过提取正确地显示了url的确切html,但是在使用jsoup库的程序中无法找到相同的结果。

下面是我的java代码:

String url="http://facebook.com/search.php?init=s:email&q=somebody@gmail.com&type=users";

Document document = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36").get();

String question =document.toString();
System.out.println(" whole content: "+question);

明确提到了正确的userAgent,它正在他们的官方站点中使用,但是,在结果中,我可以看到70%的原始html代码,但是在中间不知怎么的,我找不到几个division标签,这是我想要的数据

我试过试过.....没用...为什么doc中少了几个div标记。

你可以直接取url放入你的浏览器,如果你登录了facebook,你可以看到的回应是:“没有为你的查询找到结果。检查你的拼写或尝试另一个术语。”这就是我在jsoup解析上面提到的URL的html时所要寻找的。

但不幸的是,这部分缺失了。实际上,这个响应在div id中:“#pagelet_search_no_results”。在解析的HTML中找不到具有此id的div。我尝试了很多jsoup的方法,但没有成功。

共有1个答案

韶兴德
2023-03-14

您还应该设置一个较大的超时,例如:

Document document = Jsoup.connect(url)
.header("Accept-Encoding", "gzip, deflate")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0")
.maxBodySize(0)
.timeout(600000)
.get();
 类似资料:
  • 我正在尝试用JSOUP从以下页面获取内容:

  • 我正在刮网页使用JSoup库通过选择类属性,其中包含"nav"字符串。 这是获取网站超文本标记语言的代码: 正如您所看到的,id=“varPreviewMenu”的ul元素包含Jsoup检索到的HTML不包含的li元素。 我怎样才能得到那些元素?

  • 我正在尝试解析引导程序的引导页生成的url。看起来像https://example.com/#page-2但是JSOUP不能解析它并显示主url。如何从Bootpage获取普通链接,或者如何使JSOUP解析它。 解析代码:

  • 我想解析出这个Nasa页面上的描述,页面底部的文字 我该怎么做?

  • 主要内容:Jsoup 使用DOM解析HTML 语法,Jsoup 使用DOM解析HTML 说明,Jsoup 使用DOM解析HTML 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后如何使用类似 DOM 的方法。 Jsoup 使用DOM解析HTML 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 sampleDiv : 元素对象表示由 id“sampleDiv”标识的 html

  • 这是我的口袋碎片。爪哇: 通常,我在异步任务中使用jsoup解析一些数据。现在,我需要解析另一个应该包含元素或w/e的url,例如。 我可以在同一个异步任务中完成它,还是应该创建一个新的异步任务? 基本上我需要我的url是: 然后我应该解析一些其他元素,放入数组列表,然后使用它。 是否可能,像多个连接和使用一个元素的url? 我正在解析以下网站:,我正在解析异步任务中的href标记,比如: