Java jsoup从<;a>;标签

Java jsoup从<;a>;标签,java,html,parsing,jsoup,Java,Html,Parsing,Jsoup,我想打印标签内的文本,该标签位于 下面是我编写的代码,但没有打印任何内容。 有人能解释为什么它不起作用吗 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.*; impor

我想打印
标签内的文本,该标签位于

下面是我编写的代码,但没有打印任何内容。
有人能解释为什么它不起作用吗

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);}
}
}
import java.io.IOException;
导入org.jsoup.jsoup;
导入org.jsoup.nodes.Element;
导入org.jsoup.select.Elements;
导入org.jsoup.*;
导入org.jsoup.nodes.*;
导入java.io.*;
导入org.jsoup.nodes.Document;
类报告
{ 
静态整数计数=0;
//字符串html;
公共静态void main(字符串s[])引发IOException
{
试一试{
//Document doc=Jsoup.connect(“http://www.javatpoint.com/java-tutorial).get();
//Document doc=Jsoup.connect(“http://stackoverflow.com/).get();
文档doc=Jsoup
.连接(“http://www.stackoverflow.com")
.userAgent(“谷歌浏览器/48.0.2564.116 m”)
.get();
//系统输出打印项次(“文件”);
//元素链接=(元素)文档选择(“span[class]”;
//元素选择=文件选择(“.site icon favicon favicon stackoverflow”);
元素选择=文档选择(“a.site-link js gps track>span.rep score”);
//元素链接=(元素)文档选择(“div”);
//Elements link=doc.select(“span”).first();
//元素链接=(元素)文档选择(“span”);
//元素链接=(元素)文档选择(“a[href]”;
对于(元素el:选择)
{
//系统输出打印(“-”);
//字符串repo=el.attr(“类”);
System.out.println(el.text());
//System.out.println(el.ownText());
//如果(回购等于(“代表分数”))
//  {
//系统输出打印(el.attr(“类”);
//System.out.println(el.text());
// }
//系统输出打印号(el.attr(“id”);
//计数++;
//字符串str=el.attr(“href”);
//系统输出打印项次(str);
}
//System.out.println(“”);
}catch(IOException e){System.out.println(e);}
}
}

您的代码没有发送登录堆栈溢出所需的任何凭据,因此您将获得未注册用户的as响应页面,该页面不包含任何
37
标记

你可以试试

  • 使用登录页面发送所需凭据,然后重新使用返回的cookie(更多信息:)
  • 使用(可能是首选方法)
顺便说一句,如果你想用很少的类来选择
,只需将它们与
a.class1.class2
组合,而不是
a.class1.class2
,因为这样的选择器会试图找到
a.class1
,然后在其中找到
标记

因此,如果您能够通过jsoup登录并获得真正包含该
span
doc
,您应该能够使用

Elements select=doc.select("a.site-link.js-gps-track > span.rep-score");
//                                     ^-we combine few classes with `.`

您的代码未发送登录堆栈溢出所需的任何凭据,因此您将获得未注册用户的as响应页面,该页面不包含任何
37
标记

你可以试试

  • 使用登录页面发送所需凭据,然后重新使用返回的cookie(更多信息:)
  • 使用(可能是首选方法)
顺便说一句,如果你想用很少的类来选择
,只需将它们与
a.class1.class2
组合,而不是
a.class1.class2
,因为这样的选择器会试图找到
a.class1
,然后在其中找到
标记

因此,如果您能够通过jsoup登录并获得真正包含该
span
doc
,您应该能够使用

Elements select=doc.select("a.site-link.js-gps-track > span.rep-score");
//                                     ^-we combine few classes with `.`

您的java代码在哪里?很抱歉,我没有粘贴代码就发布了。@Reimeus,现在我如何发布代码。帮助单击链接并添加您的代码……您的java代码在哪里?很抱歉,我没有粘贴代码就发布了。@Reimeus,现在我如何发布代码。帮助单击链接并添加您的代码…@a874“我已登录该网站”是什么意思?如果您的意思是登录到您的浏览器,那么请尝试使用其他浏览器并使用其他帐户登录。那么jsoup应该返回哪个值?答案是“两者都不”,因为有关已启动会话的信息只应属于浏览器,而不应共享。试着将Jsoup视为单独的浏览器(非常简单,因为它甚至不能执行JavaScript)。我无法理解。您能否给出如何访问标记内的标记文本的片段?如果您能够使用包含
37
的jsoup获得响应,那么您应该能够通过
选择它。选择(“a.site-link.js-gps-track>span.rep score”)
。如果这不起作用,则您的
文档
很可能不包含任何
37
,因为您无法通过jsoup登录堆栈溢出。@a874您所说的“我已经登录到网站”是什么意思?如果您的意思是登录到您的浏览器,那么请尝试使用其他浏览器并使用其他帐户登录。那么jsoup应该返回哪个值?答案是“两者都不”,因为有关已启动会话的信息只应属于浏览器,而不应共享。试着将Jsoup视为单独的浏览器(非常简单,因为它甚至不能执行JavaScript)。我无法理解。您能否给出如何访问标记内的标记文本的片段?如果您能够使用包含
37
的jsoup获得响应,那么您应该能够通过
选择它。选择(“a.site-link.js-gps-track>span.rep score”)
。如果这不起作用,那么您的
文档
很可能不包含任何
37
,因为您无法通过jsoup登录到堆栈溢出。