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,&nbsp;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,&nbsp;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,&nbsp;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,&nbsp;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!

Author: har07, 2014-09-10

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