Java 如何解析包含多个表的页面
你知道如何用多个表来抓取网页吗? 我正在连接到网页 这是一个表,但在同一网页上有多个表 我也不知道怎么看这张表 XML:Java 如何解析包含多个表的页面,java,android,jsoup,Java,Android,Jsoup,你知道如何用多个表来抓取网页吗? 我正在连接到网页 这是一个表,但在同一网页上有多个表 我也不知道怎么看这张表 XML: 等级 中心 团队 销售时点情报系统 全科医生 G A. 临时秘书处 +/- PIM 购买力平价 1. 坦帕湾 C 81 50 51 101 -2 56 38 迭代器trSIter=doc.select(“表”) .iterator(); while(trSIter.hasNext()){ 元素trEl=trSIter.next().child(0); 元素tdEls=t
等级
中心
团队
销售时点情报系统
全科医生
G
A.
临时秘书处
+/-
PIM
购买力平价
1.
坦帕湾
C
81
50
51
101
-2
56
38
迭代器trSIter=doc.select(“表”)
.iterator();
while(trSIter.hasNext()){
元素trEl=trSIter.next().child(0);
元素tdEls=trEl.children();
迭代器tdIter=tdEls.select(“tr”).Iterator();
System.out.println(“>这应该可以让您开始了。每个表都有一条空白记录,您必须对其进行说明。您还必须弄清楚需要哪些统计数据以及它们在表中的位置。您可以使用tds.get()
获取这些统计数据。让我知道它是如何为您工作的
Document doc = Jsoup.connect("http://www.tsn.ca/fantasy_news/feature/?ID=49815").get();
for (Element table : doc.select("div.storyStats").select("table")) {
for (Element row : table.select("tr")) {
Elements tds = row.select("td");
if (tds.size() > 0) {
System.out.println(tds.get(1).text() + ":" + tds.get(5).text());
}
}
}
使用下面的代码,从HTML解析表似乎没有问题
public class JsoupActivity extends Activity {
Document doc;
myHttpGet _myGet;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView tv = (TextView)findViewById(R.id.tv1);
_myGet = new myHttpGet();
try {
doc = _myGet.doHttpGet();
Elements tdsEls = doc.getElementsByClass("storyStats");
//tv.setText(tdsEls.get(0).child(0).text());
tv.setText(String.valueOf(tdsEls.first().children().size()));
} catch (Exception e) {
e.printStackTrace();
}
}
private class myHttpGet {
Document myDom;
Connection myConnection;
Response myResponse;
public Document doHttpGet() {
myConnection = Jsoup.connect("http://www.tsn.ca/fantasy_news/feature/?ID=49815");
try {
myResponse = myConnection.execute();
try {
myDom = myResponse.parse();
return myDom;
} catch (IOException e) {
Log.e("napster","Parse Error");
}
} catch (IOException e) {
Log.e("napster","HTTP Error");
}
return myDom;
}
}
}
代码可以在textView中显示5,这是您在该HTML中的类storyStats下的表数。如果您必须继续解析表的内容,您可以将表分配到另一个Elements对象中并继续解析它
Elements es = tdsEls.first().children();
Anderson的回答说明了如何解析数据。希望能有所帮助。这不是一个“给我一个codez!”网站。你做过任何研究吗?你发现了什么?你尝试了什么?你有什么代码吗?你能发布URL吗?还有,通过“阅读表格”",我想你的意思是提取球员的各种统计数据?谢谢!是的,我需要提取球员的姓名和数据。谢谢B谢谢B谢谢这很好!有没有办法将整个页面拆分为不同的表格。例如,每个表格代表不同的位置,我需要将它们存储在不同的列表中。谢谢!每次通过outside for loop是其中一个表。如果表的顺序没有改变,您可以使用计数器并对照它进行检查。例如表1代表中心,表2代表左翼等等。或者,标题记录似乎包含位置。您可以通过抓取冷杉之类的操作来选择每个表的标题记录每个表的t行(应为标题行),并从其中一个th元素中取出位置。
Elements es = tdsEls.first().children();