JSoup - 选择多个项目

时间:2013-03-16 12:36:24

标签: java web web-scraping jsoup

我正在尝试从此文件中提取信息:

<tr id="ctl00_Body_mc_cErgebnisListe1_ctl02_InseratInfoTR" class="topangebot"> 
 <td class="BildTD" rowspan="2"> <a href="/anzeiger/immoweb/Detail.aspx?InseratID=6629161&amp;FromTopAngebot=true"><img border="0" src="http://images.derstandard.at/t/22/upload/imagesanzeiger/immoupload/2012/05/73/733de246-b4eb-425a-8705-2e8b50baff12.jpg" alt="" /></a> </td> 
 <td class="TitleTD" rowspan="2"> <span class="neu">TOP!</span> <strong><a href="/anzeiger/immoweb/Detail.aspx?InseratID=6629161&amp;FromTopAngebot=true">Ihr Geld als sichere Anlage - Eigentum vom Feinsten - Jacquingasse 29</a></strong><br /><a href="/anzeiger/immoweb/Detail.aspx?InseratID=6629161&amp;FromTopAngebot=true">Wien 3.,Landstra&szlig;e, Wohnung</a><br /><span style="color: gray">Erstbezug, Parkettboden, Lift, Provisionsfrei, Kabel/Sat-TV</span> </td> 
 <td class="GroessenTD" rowspan="2"> </td> 
 <td class="PreisTD" style="border:none;"> </td> 
</tr>
<tr id="ctl00_Body_mc_cErgebnisListe1_ctl02_InseratInfoTR" class="topangebot"> 
 <td class="BildTD" rowspan="2"> <a href="/anzeiger/immoweb/Detail.aspx?InseratID=6629161&amp;FromTopAngebot=true"><img border="0" src="http://images.derstandard.at/t/22/upload/imagesanzeiger/immoupload/2012/05/73/733de246-b4eb-425a-8705-2e8b50baff12.jpg" alt="" /></a> </td> 
 <td class="TitleTD" rowspan="2"> <span class="neu">TOP!</span> <strong><a href="/anzeiger/immoweb/Detail.aspx?InseratID=6629161&amp;FromTopAngebot=true">Ihr Geld als sichere Anlage - Eigentum vom Feinsten - Jacquingasse 29</a></strong><br /><a href="/anzeiger/immoweb/Detail.aspx?InseratID=6629161&amp;FromTopAngebot=true">Wien 3.,Landstra&szlig;e, Wohnung</a><br /><span style="color: gray">Erstbezug, Parkettboden, Lift, Provisionsfrei, Kabel/Sat-TV</span> </td> 
 <td class="GroessenTD" rowspan="2">12312 </td> 
 <td class="PreisTD" style="border:none;">3123 </td> 
</tr>

我想同时使用我的css查询来自同一个tr.topangebot的标题和价格。我试过这个问题:

Elements topangebotPars = doc.select("tr.topangebot > (td.TitleTD && td.GroesseTD)");

我得到了:

  

无法解析查询

如何同时选择多个元素?

1 个答案:

答案 0 :(得分:3)

请记住,select使用的选择器是CSS选择器。就像你在CSS文件中写一个comma-separated list of selectors一样,例如:

tr.topangebot > td.TitleTD, tr.topangebot > td.GroesseTD {
    color: blue:
}

...你用select做同样的事情:

Elements topangebotPars = doc.select("tr.topangebot > td.TitleTD, tr.topangebot > td.GroesseTD");

JSoup文档有一个quick reference用于选择器。他们在“组合器”下列出了这一点(尽管CSS规范本身并不认为它们是“组合器”,只是一个组)。