对嵌套表使用scrapy

时间:2018-07-03 03:04:41

标签: python web-scraping scrapy scrapy-spider

我正在尝试从嵌套表中获取数据,我一次只需要获取每个级别的行并在遍历嵌套表时遍历它们。表,行和列标签没有任何属性,因此很难识别。

示例:

<table>
   <tbody>
     <!-- first level rows -->
      <tr>
         <td>
           ...clipped...
         <td>
         <td>
            <table>
               <tbody>
                  <!-- second level rows -->
                  <tr>
                     <td>
                        ...clipped...
                     </td>
                  </tr>
               </tbody>
            </table>
         </td>
      </tr>
      <tr>
         <td>
           ...clipped...
         <td>
         <td>
            <table>
               <tbody>
                  <!-- second level rows -->
                  <tr>
                     <td>
                        ...clipped...
                     </td>
                  </tr>
               </tbody>
            </table>
         </td>
      </tr>
   </tbody>
</table>

在示例中您可以看到有2级表行,我需要遍历第一级行,然后有一个嵌套循环才能遍历第二级行。

如何使用css selectorxpath从响应中获取第一级行?

我尝试了response.css('tr'),它为我提供了响应中的所有行(而不仅仅是第一级行)。

我也尝试过response.css('tr:first-child'),它确实给了我2个节点,但是由于某种原因它们不是第一行。

1 个答案:

答案 0 :(得分:1)

如何使用CSS选择器或xpath从响应中获取第一级行?

以下内容可以为您提供可迭代的内容:

for row in response.css('tbody>tr'):
    #your extracion code goes here