我试图以这种方式获得此代码的结果:
标题:本10 Ultimate Alien
评论:taseen_shafquattaseen_shafquat:第4季有没有
这个系列
标题:晃
评论:dragon3476dragon3476:我最喜欢的动画之一
非常出色的工作,关于我的第300枚手表,我仍然得到了
原始海报从出来+ DVD和vid甚至
T恤,是的,我不能说这么棒的一件坏事
动画5/5
但是,我是这样得到的:
标题:本10 Ultimate Alien
标题:taseen_shafquattaseen_shafquat:第4季有没有
这个系列
标题:晃
标题:dragon3476dragon3476:我最喜欢的动画之一
一点点工作,关于我的第300枚手表,我仍然得到了原始的海报
从什么时候出来的+ DVD和vid甚至T恤衫所以我
不能说这么好的动画有什么不好的5/5
码
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.select.Elements;
import java.io.*;
import java.util.List;
public class WebScraper {
public static void main(String[] args) throws Exception {
String url = "http://www.1channel.ch/latest_comments.php";
Document doc = Jsoup.connect(url).get();
for (Element E : doc.select("div.latest_comments > a, div.latest_comments > p")) {
System.out.print("title: "+ E.getElementsByTag("a").text());
System.out.println( E.getElementsByTag("p").text());
// System.out.println(T);
System.out.print("\n");
try
{
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("/Users/samualdoku/Desktop/Twitter/scraped.txt", true)));
out.println(E.text());
out.close();
} catch (IOException e) {
}
}
}
}
这是我要抓取的HTML。我认为问题出在
href
内的span
标记。它包含评论者用户名。我称呼getElementsByTag("a")
为标题,因为标题在锚标记内。我如何摆脱span标记,因为它会在用户名之前打印标题,但实际情况并非如此。 <div class="latest_comments com_class_tv">
<a href="/tv-2733767-Dallas/season-1-episode-3">Dallas</a>
( 6 minutes ago )
<p>
<span class="latest_comments_poster">
<a href="/profile/jowar">jowar</a>
:
</span>
i just started watchin...eeing as its 34nyrs old
</p>
</div>
最佳答案
尝试这个
public static void main(String[] args) throws Exception {
String url = "http://www.1channel.ch/latest_comments.php";
Document doc = Jsoup.connect(url).get();
for (Element E : doc.select("div.latest_comments)) {
System.out.print("title: "+ E.select("a").text());
System.out.println("comment: " + E.select("p").text());
}
}