Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSOUP从html中提取绝对url_Java_Android_Url_Jsoup_Href - Fatal编程技术网

Java JSOUP从html中提取绝对url

Java JSOUP从html中提取绝对url,java,android,url,jsoup,href,Java,Android,Url,Jsoup,Href,我一直在查看jsoup页面,但我所能做的就是从url中提取标题等等。。。但我需要从确切的div获得完整的绝对url地址。我想把它存储在某个地方,以后再使用它 <div class="link-block container"> <a href="/what-to-do/11636002" rel="nofollow" title="unique abilities" class="just-lin

我一直在查看jsoup页面,但我所能做的就是从url中提取标题等等。。。但我需要从确切的div获得完整的绝对url地址。我想把它存储在某个地方,以后再使用它

<div class="link-block container">
                <a href="/what-to-do/11636002" rel="nofollow" 
                        title="unique abilities" class="just-link">
                </a>
</div>


正如我所说,我尝试了
String absHref=link.attr(“abs:href”)
,但它给了我代码中的“标题”部分。我做错了什么?请给我一些建议。

你可以这样做:

String myHtml = "<div class=\"link-block container\">\n"
                + "  <a href=\"/what-to-do/11636002\" rel=\"nofollow\" title=\"unique abilities\" class=\"just-link\">\n"
                + "  </a>\n"
                + "</div>";

Document doc = Jsoup.parseBodyFragment(myHtml, "http://your.baseurl");
Element e = doc.select("a").first();

System.out.println(e.attr("abs:href"));

如果要获取所有类似的
a
元素,请执行以下操作:

Elements elements = doc.select("a[href*=/what-to-do/");
for (Element e: elements) {
   System.out.println(e.attr("abs:href"));
}

这将使你们所有人
a
,其中
href
包含“/做什么/”

向我们展示你们的代码实现。要从其中的某个部分获取绝对url,你们需要使用正则表达式,我发现了一种非常简单的方法:url baseUrl=newURL(“我的基本url”);URL URL=新URL(baseUrl,“/what to do/1163602”);它工作得很好,因为我在最后得到了一个绝对链接。现在,请告诉我如何使用例如jsoup提取“/what to do/1163602”部分??如果某个答案对您有效,那么您应该接受它。否则,如果您后来找到了一个更好的解决方案,您可以回答自己的问题并接受它。问题是我不知道如何将此部分准确地放入我的变量(例如myHtml)中。这是我的问题。@edinson,你想从哪里得到它?如果您将myHtml作为字符串,那么您应该像在我的答案中那样解析它。如果它来自URL,请使用
Jsoup.connect(yourUrl.get()或者你是说别的什么?我不太清楚。我有一个完整的HTML网站。从整个站点的代码中,我需要提取“/what to do/1163602”部分。因此,它不是代码中唯一的url。@爱迪生,只需从页面中选择所需的所有
a
元素即可。我已经更新了我的答案。
Elements elements = doc.select("a[href*=/what-to-do/");
for (Element e: elements) {
   System.out.println(e.attr("abs:href"));
}