作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想打印<span>
里面的文字<a>
里面的标签标签。我想打印<span class="rep-score">37</span>
里面的37
<a href="//stackoverflow.com"
class="site-link js-gps-track"
data-id="1"
data-gps-track="
site.switch({ target_site:1, item_type:3 }),
site_switcher.click({ item_type:1 })">
<div class="site-icon favicon favicon-stackoverflow" title="Stack Overflow"></div>
Stack Overflow
<span class="rep-score">37</span>
</a>
下面是我为此编写的代码,但没有打印任何内容。
有人可以解释一下为什么它不起作用吗?
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.jsoup.*;
import org.jsoup.nodes.*;
import java.io.*;
import org.jsoup.nodes.Document;
class Repoo
{
static int count=0;
// String html;
public static void main(String s[])throws IOException
{
try{
// Document doc=Jsoup.connect("http://www.javatpoint.com/java-tutorial").get();
// Document doc=Jsoup.connect("http://stackoverflow.com/").get();
Document doc = Jsoup
.connect("http://www.stackoverflow.com")
.userAgent("Google Chrome/48.0.2564.116 m")
.get();
// System.out.println("doc");
// Elements link=(Elements)doc.select("span[class]");
// Elements select=doc.select(".site-icon favicon favicon-stackoverflow");
Elements select=doc.select("a.site-link js-gps-track > span.rep-score");
// Elements link=(Elements)doc.select("div");
// Elements link = doc.select("span").first();
// Elements link = (Elements)doc.select("span");
// Elements link = (Elements)doc.select("a[href]");
for(Element el: select)
{
// System.out.print("-");
// String repo=el.attr("class");
System.out.println(el.text());
// System.out.println(el.ownText());
// if(repo.equals("rep-score"))
// {
// System.out.println(el.attr("class"));
// System.out.println(el.text());
// }
// System.out.println(el.attr("id"));
// count++;
// String str=el.attr("href");
// System.out.println(str);
}
// System.out.println("<"+count+">");
}catch(IOException e){System.out.println(e);}
}
}
最佳答案
您的代码没有发送登录 Stack Overflow 所需的任何凭据,因此您收到的是未注册用户的响应页面,其中不包含任何 <span class="rep-score">37</span>
标签。
你可以试试
顺便说一句,如果您想选择 <a ..>
对于很少的类,只需将它们与 a.class1.class2
结合起来即可,不是a.class1 class2
因为这样的选择器会尝试查找 a.class1
然后<class2 ..>
标签在其中。
因此,如果您能够通过 jsoup 登录并获取 doc
其中确实包含 span
你应该能够选择它
Elements select=doc.select("a.site-link.js-gps-track > span.rep-score");
// ^-we combine few classes with `.`
关于java - jsoup 从 <a> 标签内的标签获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35829874/
我是一名优秀的程序员,十分优秀!