我正在尝试从以下页面获取信息:http://fantasynews.cbssports.com/fantasyfootball/players/updates/187741
我需要为每个项目获取单独的字符串:
现在我可以使用以下方法从整个表格中获取信息:
doc = Jsoup.connect("http://fantasynews.cbssports.com/fantasyfootball/players/updates/" + playerId).timeout(30000).get();
Element title = doc.select("[id*=newsPage1]").first();
但结果是所有文章都在一起运行。
有人可以提供建议吗?
由于 约什
答案 0 :(得分:0)
您需要使用更精心设计的css选择器。也许是这样的:
public static void main(String[] args) {
Pattern pat = Pattern.compile("(.*)News\\:\\p{Zs}(.*)Analysis\\:\\p{Zs}(.*)", Pattern.UNICODE_CASE);
Document doc = null;
try {
doc = Jsoup.connect("http://fantasynews.cbssports.com/fantasyfootball/players/updates/187741").userAgent("Mozilla").get();
} catch (IOException e1) {
e1.printStackTrace();
System.exit(0);
};
Elements titles = doc.select("table h3");
for (Element title : titles){
Element td = title.parent();
String innerTxt = td.text();
Matcher mat = pat.matcher(innerTxt);
if (mat.find()){
System.out.println("titel = " + mat.group(1));
System.out.println("news = " + mat.group(2));
System.out.println("analysis = " + mat.group(3));
}
}
}
我建议您查看css选择器和JSoup documentation。