Java 如何从没有ID或类的标记中获取文本

Java 如何从没有ID或类的标记中获取文本,java,jsoup,Java,Jsoup,我想使用JSOUP从此片段中提取“电影”文本: 正如您所注意到的,除了第一个span之外,第二个span标记也没有ID或class。我的问题是如何检索该文本 多谢各位 <span> </span><span><span class="contentTitle"> Program Type:</span> <s

我想使用JSOUP从此片段中提取“电影”文本:

正如您所注意到的,除了第一个span之外,第二个span标记也没有ID或class。我的问题是如何检索该文本

多谢各位

<span>                                                             
</span><span><span class="contentTitle">
Program Type:</span>
<span style="font-size: 14px;">
Movie</span>
<br />
</span><span id="MainContent_trProgramCategories"><span class="contentTitle">
 Categories:</span>&nbsp; 
<span style="font-size: 14px;">Horror, Thriller
</span>

程序类型:
电影

类别: 恐怖片
您需要通过使用
select(…)
方法不断缩减数据。例如,简单地做:

Elements myEles = doc.select("div[id=MainContent_UpdatePanel2] td");
String text = myEles.text();

System.out.println(text);

将获得您可能感兴趣的大部分内容。

您需要通过使用
select(…)
方法不断缩减数据。例如,简单地做:

Elements myEles = doc.select("div[id=MainContent_UpdatePanel2] td");
String text = myEles.text();

System.out.println(text);
将为您提供您可能感兴趣的大部分内容。

试试这个

Element element = doc.select("#MainContent_trProgramCategories  .contentTitle").get(0).nextElementSibling();
试试这个

Element element = doc.select("#MainContent_trProgramCategories  .contentTitle").get(0).nextElementSibling();
你可以使用“装满鳗鱼的气垫船”的建议

但对于未来的用例, 获取元素的CSS路径或XPath的最简单方法是使用Firebug扩展

您可以单击“bug外观图像”旁边的“鼠标指针外观图标”,选择要从浏览器中检索值的元素,然后下一行的XPath/CSS文本框将为您提供可以使用的路径

只需复制该文本并将其粘贴到代码中即可

doc.select("HERE PASTE THE XPATH/CSS PATH THAT YOU COPIED FROM FIREBUG").text();
如果您使用的是chrome

你可以

  • 右键单击要检索文本值的元素 从
  • 选择“检查元素”
  • 再次右键单击调试器中突出显示的元素
  • 选择“复制XPath”
  • 你可以使用“装满鳗鱼的气垫船”的建议

    但对于未来的用例, 获取元素的CSS路径或XPath的最简单方法是使用Firebug扩展

    您可以单击“bug外观图像”旁边的“鼠标指针外观图标”,选择要从浏览器中检索值的元素,然后下一行的XPath/CSS文本框将为您提供可以使用的路径

    只需复制该文本并将其粘贴到代码中即可

    doc.select("HERE PASTE THE XPATH/CSS PATH THAT YOU COPIED FROM FIREBUG").text();
    
    如果您使用的是chrome

    你可以

  • 右键单击要检索文本值的元素 从
  • 选择“检查元素”
  • 再次右键单击调试器中突出显示的元素
  • 选择“复制XPath”


  • 请始终将HTML片段作为文本而不是图像发布。我不是100%了解JSOUP,但我通常使用XPath查询。我很确定JSoup有自己的查询语言,但基本上您希望使用元素的“路径”作为唯一性的一部分。但它仍可能返回多个结果…即“找到属于…/table/tbody/tr/td/span的子元素span元素”,并且move包含在一个类为“contentTitle”的元素中。它嵌套在另一个元素中,但如果正确使用,此信息将对您有所帮助。@HoverCraftfullOfels:我认为在截图时它会更清晰。@Andronienn但我们无法测试它:请始终将HTML片段作为文本而不是图像发布。我不是100%了解JSOUP,但我通常使用XPath查询。我很确定JSoup有自己的查询语言,但基本上您希望使用元素的“路径”作为唯一性的一部分。但它仍可能返回多个结果…即“找到属于…/table/tbody/tr/td/span的子元素span元素”,并且move包含在一个类为“contentTitle”的元素中。它嵌套在另一个元素中,但如果正确使用,此信息将对您有所帮助。@HoverCraftFullOfels:我认为在截图时它会更清晰。@Andronienn但我们无法测试它:p谢谢您的回答,但FireBug给了我一个JSOUP无法“理解”的Xpath。在我的例子中,我有这个
    /html/body/form/center/table[2]/tbody/tr[2]/tbody/tr[2]/td/div/table/tbody/tr/td/div/table/tbody/tr/td/div/table/tbody/tr/td/div/table/tbody/tr/td/td/span[4]/span[2]
    我对您的方法非常感兴趣。根据您可以使用CSS查询来获得您需要的元素。复制css查询而不是XPath,看看它是如何运行的谢谢你的回答,但是FireBug给了我一个JSOUP无法“理解”的XPath。在我的例子中,我有这个
    /html/body/form/center/table[2]/tbody/tr[2]/tbody/tr[2]/td/div/table/tbody/tr/td/div/table/tbody/tr/td/div/table/tbody/tr/td/div/table/tbody/tr/td/td/span[4]/span[2]
    我对您的方法非常感兴趣。根据您可以使用CSS查询来获得您需要的元素。复制css查询,而不是XPath,然后查看它在
    MainContent\trProgramCategories
    中的运行情况,但在我的例子中,我希望从没有任何标识符的范围中检索“电影”。请阅读我的问题。谢谢。这终于奏效了:
    document.select(“span.contentTitle”).get(0.nextElementSibling().text()MainContent\u trProgramCategories
    ,但在我的例子中,我希望从没有任何标识符的范围中检索“电影”。请阅读我的问题。谢谢。这终于奏效了:
    document.select(“span.contentTitle”).get(0.nextElementSibling().text()