Raspagem na Web com extensão cromática de DataMiner: variável Xpath
Estou a usar a extensão DataMiner Chrome para raspar dados de um site. No Chrome, estou a usar o elemento inspeccionar > carregue com o botão direito no elemento do Inspector > Copie o método XPath para gerar os XPath para os dados de que preciso. Isto funciona muito bem, mas quando analiso o scrape, estou a ter a primeira entrada de resultados repetida vezes sem conta.
Ao inspecionar o segundo resultado e copiar o XPath, notei que há um número sequencial no ID. Aqui estão os XPaths para os primeiros dados ponto:
Entry 1 Company: //*[@id="Repeater_Results_ctl01_tCell1"]/h3/b/a
Entry 2 Company: //*[@id="Repeater_Results_ctl02_tCell1"]/h3/b/a
Posso inserir uma variável para o número sequencial? Ou há uma maneira melhor de o fazer?
Aqui está uma página de exemplo:
<table border="0" cellpadding="0" cellspacing="0" class="tablelist" id="TsTable">
<tr>
<th class="col1">Organization</th>
<th>
<div class="tCol2">Location</div>
</th>
</tr>
<tr>
<td id="Repeater_Results_ctl01_tCell1" class="tCell1">
<h3><b><a href="/organization-search/details.aspx?slne=8118" target="_blank">Organization A</a></b></h3>
<span class="nm">John Doe</span></h3>
<p style="margin-bottom:0"><b>Phone:</b> 555-123-4567<br /><span class="webp"><b>Web: </b><a href="http://www.companya.com" target="_blank">www.companya.com</a></span><br />
</p>
<div class="locMobile"><b>LOCATION</b><br />
<span style="white-space:nowrap">Anywhere, USA</span> <br />
12345<br />
<small><strong>0 miles</strong></small>
</div>
</td>
<td id="Repeater_Results_ctl01_tCell2" class="tCell2a">
<div class="tCell2"><b>LOCATION:</b><br />
<span class="nw">Anywhere, USA</span><br />
12345<br />
<small><strong>0 miles</strong></small>
</div>
</td>
</tr>
<tr>
<td id="Repeater_Results_ctl01_tCell4" colspan="2" class="tCell4a">
<p><b>Services:</b> XYZ Services</p>
<p><strong>Locations:</strong> Anywhere, USA</p>
</td>
</tr>
<tr>
<td id="Repeater_Results_ctl02_tCell1" class="tCell1">
<h3><b><a href="/organization-search/details.aspx?slne=2982" target="_blank">Organization B</a></b></h3>
<span class="nm">Jane Dough</span></h3>
<p style="margin-bottom:0"><b>Phone:</b> 555-123-9876<br /><span class="webp"><b>Web: </b><a href="http://www.organizationb.com" target="_blank">www.organizaionb.com</a></span><br />
</p>
<div class="locMobile"><b>LOCATION</b><br />
<span style="white-space:nowrap">Somewhere, USA</span> <br />
12345<br />
<small><strong>6.7 miles</strong></small>
</div>
</td>
<td id="Repeater_Results_ctl02_tCell2" class="tCell2a">
<div class="tCell2"><b>LOCATION:</b><br />
<span class="nw">Somewhere, USA</span><br />
12345<br />
<small><strong>6.7 miles</strong></small>
</div>
</td>
</tr>
<tr>
<td id="Repeater_Results_ctl02_tCell4" colspan="2" class="tCell4a">
<p><b>Services:</b> ABC Services</p>
<p><strong>Locations:</strong>Somewhere, USA</p>
</td>
</tr>
Obrigado pela ajuda!
1
1 answers
Pode usar o método contém , como este
//*[contains(@id, "_tCell1")]/h3/b/a
1
Author: Tasawer Nawaz, 2014-09-11 07:53:48