gpt4 book ai didi

java - Jsoup - 从 标签内的 标签提取数据

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:59 26 4
gpt4 key购买 nike

我想使用 Jsoup 从网站提取数据。数据在表格中。

HTML 代码:

<table><tr><td><a href="......">Pop.Density</a></td>
<td>123</td></tr></table>

我要打印:

zip code...(taken from a text file): 123

我有以下异常(exception):

Exception in thread "main" java.lang.NullPointerException

如有任何帮助,我们将不胜感激。谢谢!

这是我的代码:

String s = br.readLine();
String str="http://www.bestplaces.net/people/zip-code/illinois/"+s;

org.jsoup.Connection conn = Jsoup.connect(str);
conn.timeout(1800000);
Document doc = conn.get();

for (Element table : doc.select("table"))
{
for (Element row : table.select("tr"))
{
Elements tds = row.select("td");
if (tds.size() > 1)
{
Element link = tds.get(0).select("a").first();
String linkText = link.text();

if (link.text().contains("Pop.Density"))
System.out.println(s+","+tds.get(1).text());
}
}
}

更新:如果我修改最后一个if():

if (tds.get(0).select("a").text().contains("Pop.Density"))

我没有任何异常,但也没有输出。

最佳答案

假设共享的html不是正在使用的真实html,我认为当第一个TD没有<a>时它会抛出异常标签。我认为你需要更新

  if (tds.size() > 1) 

作为

  if (tds.size() > 1 && tds.get(0).select("a") != null 
&& tds.get(0).select("a").first() ! null)

如果不是这种情况,则共享 NullPointerException 的行号origin 可以帮助更好地找到解决方案。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com