Scrapy: Como faço para selecionar rowspan

votos
1

Aqui está o meu código:

  <tr>
      <td height=34 class=normal>4893</td>
      <td class=normal>Public Utilities Commission </td>
      <td class=normal>Investigation to Examine </td>. 
   </tr>
   <tr>
      <td height=34 rowspan=2 class=normal><a 
             href=docket/4892page.html>4892</a></td>
      <td class=normal><p>RI Distribution Genration 
            Boardd</p></td>
      <td class=normal>2019 Renewable Energy </td>
    </tr>
    <tr>
      <td class=normal>The Narragansett Ele</td>
      <td class=normal>2018 Renewable Energy </td>
    </tr>
    <tr>
      <td height=34 class=normal><a 
           href=docket/4891page.html>4891</a></td>
      <td class=normal>Kearsarge Uxbridge, LLC </td>
      <td class=normal>Renewable Energy</td>
    </tr>

No 2º <tr>onde rowspan = 2 Quero aplicar o conteúdo do primeiro <td>ou seja 4892 para o próximo <tr>, onde há dois <td>. Eu tentei o seguinte, mas ele não funciona:

        item['id'] = row.xpath('.//tr//td[1]//text()').extract()

        if not item['id']:
            item['id'] = row.xpath('.//[preceding- 
                                      sibling::tr//td[1]//text()').extract()
Publicado 08/11/2018 em 06:56
fonte usuário
Em outras línguas...                            


1 respostas

votos
2

Então, ao invés de "Select rowspan" você está olhando realmente para "selecionar por rowspan".

Lá estão várias abordagens que você pode tentar.

Selecione-o quando um rowspanexiste:

# CSS
row.css('tr td[rowspan]::text')
# XPath
row.xpath('//tr/td[@rowspan]/text()')

Selecione-o quando um rowspantem um valor específico ( "2" aqui):

# CSS
row.css('tr td[rowspan=2]::text')
# XPath
row.xpath('//tr/td[@rowspan="2"]/text()')

Veja também:

Respondeu 08/11/2018 em 08:32
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more