然后我在Jsoup as中将xpath转换为CSS查询,以便稍后提取特定元素:
Element rate=doc.select("html body table:nth-child(2) tbody tr td:nth-child(2) table tbody tr td table tbody tr td:nth-child(2) table tbody tr:nth-child(2) td")
代码的执行没有正确定位我,而是定位到Firebug在XPath中引用的元素:
wrong:/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[15]/td[2]
right:/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td
从最后来看,第一个区别是:
有没有任何替代Jsoup的方法可以处理这类问题?
你差一点就到了!
问题是(正如您所暗示的)提供给select()
的表达式匹配两个元素。我通过在Chrome dev控制台中执行JQuery来检查这一点。
select()
返回一个elements
,这样您就可以访问rate.get(1)
,但它读起来并不是很好。因此,您可以对查询添加更多的改进,使其得到您所需要的评级:
Element rate=doc.select("html body table:nth-child(2) tbody tr td:nth-child(2) table tbody tr td table tbody tr td:nth-child(2) table tbody tr:nth-child(2) td[align=center]").first();
主要内容:Jsoup 解析HTML正文 语法,Jsoup 解析HTML正文 说明,Jsoup 解析HTML正文 示例以下示例将展示将 HTML 片段字符串解析为 Element 对象作为 html 正文。 Jsoup 解析HTML正文 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 片段字符串。 body : 表示文档正文元素的子元素,等效于 document.getElementsByTag("body"
我想解析出这个Nasa页面上的描述,页面底部的文字 我该怎么做?
到目前为止我没有问题。我可以解析html数据。我使用jsoup中的select方法,并使用“div.col-section”检索数据,这意味着我要查找类为col-section的div元素。我想用文本区打印数据。结果,我有一个巨大的一个段落,即使在网站上的真实数据是不止一个段落。那么如何像网站上一样解析数据呢?
Jsoups解析是否存在某种类型的限制。我一直在处理内存问题,这是我在这个网站上公开的另一个问题,但我开始意识到我甚至没有得到我需要的所有信息。 我正在使用jsoup来解析一个html页面,它是一个测试页面,里面只有数百万个由空白分隔的数字。当我用jsoup解析它时,我可以得到一些文本,但它不会得到全部。 例如,如果我有一个,它包含来自.parse()的html,那么它只有整个网页中数字的一半。如
主要内容: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
问题内容: 我正在做一个Maven项目,该项目使我可以解析网站中的html数据。我可以使用下面的代码来解析它: 到目前为止,我还没有问题。我可以解析html数据。我正在从jsoup中使用select方法,并使用“ div.col- section”检索数据,这意味着我正在使用class为col- section的div元素进行查找。我想在textarea中打印数据。即使网站上的实际数据超过一个段落