Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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从其他div/id类中的类提取href_Java_Html Parsing_Jsoup - Fatal编程技术网

Java 使用jsoup从其他div/id类中的类提取href

Java 使用jsoup从其他div/id类中的类提取href,java,html-parsing,jsoup,Java,Html Parsing,Jsoup,您好,我正在尝试从以下来源中提取“title”类中的第一个href(该来源只是整个页面的一部分,但我使用的是整个页面): divid=“atfResults”class=“列出结果”> 1. 作者:J.R.R.托尔金 (平装本-2009年4月2日) 我尝试了select函数和getElementByClass的几种变体,但都给了我一个“null”值,例如: Document firstSearchPage = Jsoup.connect(fullST).get(); Element link

您好,我正在尝试从以下来源中提取“title”类中的第一个href(该来源只是整个页面的一部分,但我使用的是整个页面):

divid=“atfResults”class=“列出结果”>
1.
作者:J.R.R.托尔金
(平装本-2009年4月2日)
我尝试了select函数和getElementByClass的几种变体,但都给了我一个“null”值,例如:

Document firstSearchPage = Jsoup.connect(fullST).get();
Element link = firstSearchPage.select("div.title").first();

如果有人能帮助我解决这个问题,并推荐一些阅读领域,以便我将来避免这个问题,我将不胜感激。

CSS选择器
div.title
,返回一个
,而不是您认为的链接。如果需要
,则应使用
a.title
选择器

Element link = document.select("a.title").first();
String href = link.absUrl("href");
// ...
或者,如果
可以出现在该点之前的
之外的文档中的其他位置,则需要以下更具体的选择器:

Element link = document.select("div.title a.title").first();
String href = link.absUrl("href");
// ...

这将返回第一个
,它是

的孩子,谢谢您的回答。但是,我仍然存在以下问题:Elements link=document.select(“div.title a.title”).first();不会编译,因为它需要“元素”。当我使用您的两个示例中的任何一个更改此选项时,我会在以下行中得到NullPointerException:String href=link.absUrl(“href”);第一个只是一个打字错误(可能是习惯造成的),我在回答中修正了它。第二个表示文档中没有这样的元素。我不确定为什么在提取的代码中找不到所需的元素。当标题出现在浏览器的inspect element窗口中时,我试图提取的页面代码中的许多主标题返回null。是否可能需要在文档中添加更多内容。例如,选择(div.main div.searchtemplate div.etc),直到达到所需的部分?可能是由JavaScript填充的?Jsoup不执行JS代码。右键单击并在浏览器中查看源代码,以查看Jsoup将检索到什么(不检查元素!它在当前HTML DOM树上截取,而不是在检索到的源代码上截取)。执行
System.out.println(document.html())
查看Jsoup检索到的内容。非常感谢您的帮助。我有它提取包含我需要的信息,但是我需要的href是