Jsoup如何从html获取值

时间:2016-11-03 22:59:33

标签: java html jsoup

所以我正在尝试从此链接获取具体信息:https://myanimelist.net/anime/31988/Hibike_Euphonium_2

我真的不懂html所以这对我来说有点困难。

我正在寻找从这里获得的信息:

<div>
    <span class="dark_text">Studios:</span>
          <a href="/anime/producer/2/Kyoto_Animation" title="Kyoto Animation">Kyoto Animation</a>  </div>

<div class="spaceit">

我正在尝试做的是搜索“工作室”,然后获取href链接(京都动画)的标题。

因为我设法得到了这个:

Document doc = Jsoup.connect("https://myanimelist.net/anime/31988/Hibike_Euphonium_2").get();

        Elements studio = doc.select("a[href][title]");
        for(Element link : studio){
            System.out.println(link.attr("title"));
        }

它正在输出:

Lantis
Pony Canyon
Rakuonsha
Ponycan USA
Kyoto Animation
Drama
Music
School
Kyoto Animation
Go to the Last Post
Go to the Last Post
Anime You Should Watch Before Their Sequels Air This Fall 2016 Season
Collection
Follow @myanimelist on Twitter

2 个答案:

答案 0 :(得分:2)

应该是

doc.select("span:contains(Studios) + a[href][title]");
我认为span是列表标题的常用元素。

基本上,此选择器会获取包含文本span的所有Studios元素,然后获得具有属性ahref的1级​​子title元素

以防万一,给定的选择器只会选择一个链接并在span中 更普遍的可能是

*:contains(Studio) > a[title]

这意味着 - 接受具有a属性的每个title元素,以及包含测试Studio的任何(*)元素的直接子元素。 Contains还考虑了降序子项中的所有文本。对于使用特定元素:textOwn的文本。

答案 1 :(得分:0)

未经测试,但

之类的内容如何
    ...
    Elements studio = doc.select("a[@title='Kyoto Animations']");
    ...