gpt4 book ai didi

java - 使用 JSoup for Java 从网页中提取特定行

转载 作者:行者123 更新时间:2023-11-30 11:36:41 25 4
gpt4 key购买 nike

您好,我想使用 JSoup 库从网站上抓取一些文本。我试过下面的代码,它给了我整个网页,我只想提取特定的行。这是我正在使用的代码:

Document doc = null;
try {
doc = Jsoup.connect("http://www.example.com").get();
} catch (IOException e) {
e.printStackTrace();
}
String text = doc.html();

System.out.println(text);

打印出以下内容

<html>
<head></head>
<body>
Martin,James,28,London,20k
<br /> Sarah,Jackson,43,Glasgow,32k
<br /> Alex,Cook,22,Liverpool,18k
<br /> Jessica,Adams,34,London,27k
<br />
</body>
</html>

我如何提取第 6 行 Alex,Cook,22,Liverpool,18k 并将其放入一个数组中,其中每个元素都是逗号前的单词(例如:[0] = 亚历克斯,[1] = 厨师等)

最佳答案

也许你需要格式化(?)结果:

    Document doc = Jsoup.connect("http://www.example.com").get();
int count = 0; // Count Nodes

for( Node n : doc.body().childNodes() )
{
if( n instanceof TextNode )
{
if( count == 2 ) // Node 'Alex'
{
String t[] = n.toString().split(","); // you have an array with each word as string now

System.out.println(Arrays.toString(t)); // eg. output
}
count++;
}
}

输出:

[ Alex, Cook, 22, Liverpool, 18k ]

编辑:

因为你不能通过它的内容来选择 TextNode(只有 Element 才有可能)你需要一个小的解决方法:

for( Node n : doc.body().childNodes() )
{
if( n instanceof TextNode )
{
str = n.toString().trim();

if( str.toLowerCase().startsWith("alex") ) // Node 'Alex'
{
String t[] = n.toString().split(","); // you have an array with each word as string now

System.out.println(Arrays.toString(t)); // eg. output
}
}
}

关于java - 使用 JSoup for Java 从网页中提取特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14447452/

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