第一次发布海报和相当新的编码器,所以请放轻松我。我试图使用jSoup从表中抓取数据。但是,我有几个问题:
1)我正在使用NetBeans。我得到一个"停止"第30行(Elements tds ...)上的错误表示无法找到符号符号方法getElementsByTag。我很困惑,因为我认为我导入了正确的包,并且我使用相同的代码在上面几行并没有错误。
2)当我运行代码时,我收到一条错误消息:
Exception in thread "main" java.lang.NullPointerException
at mytest.JsoupTest1.main(JsoupTest1.java:26)
我认为这意味着正在使用值为NULL的变量。我是否错误地输入了"行"我上面的for循环变量?
这是我的代码。我真的很感激任何帮助!
package mytest;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTest1 {
private static Object row;
public static void main(String[] args) {
Document doc = null;
try {
doc = Jsoup.connect( "http://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=8&season=2015&month=0&season1=2015&ind=0&team=18&rost=0&age=0&filter=&players=0" ).get();
}
catch (IOException ioe) {
ioe.printStackTrace();
}
Element table = doc.getElementById( "LeaderBoard1_dg1_ct100" );
Elements rows = table.getElementsByTag( "tr" );
for( Element row:rows ) {
}
Elements tds = row.getElementsByTag( "td" );
for( int i=0; i < tds.size(); i++ ) {
System.out.println(tds.get(i).text());
}
}
}
答案 0 :(得分:1)
欢迎使用StackOverflow。
这很有效。
WebP
您的代码有三个问题。
Document doc = null;
try {
doc = Jsoup
.connect(
"http://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=8&season=2015&month=0&season1=2015&ind=0&team=18&rost=0&age=0&filter=&players=0")
.get();
}
catch (IOException ioe) {
ioe.printStackTrace();
}
Element table = doc.getElementById("LeaderBoard1_dg1_ctl00");
Elements rows = table.getElementsByTag("tr");
for (Element row : rows) {
Elements tds = row.getElementsByTag("td");
for (int i = 0; i < tds.size(); i++) {
System.out.println(tds.get(i).text());
}
}
使用LeaderBoard1_dg1_ct100
。您错误地将LeaderBoard1_dg1_ctl00
误认为l
。1
。不需要这个。删除它。Object row
循环之外进行了行的迭代。因为你有for
变量,所以没有编译错误,从而隐藏了问题。