多个div与scrapy

2024-06-16 13:03:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用scrapy来抓取一个网站,我试图从中获取数据的结构如下:

<div class="AA BB">
  <span data-format-supply data-format-value="16">16</span>HAYA
</div>
<div class="AA BB">
  <span data-format-supply data-format-value="21">42</span>
  <span data-format-supply data-format-value="21">21</span>HAYA
</div>

我想提取第二个div span内的文本。例如,在本例中,我要提取21。我的代码如下:

^{pr2}$

我的问题是,如何使用css选择第二个AA类?在那之后,我如何指定我只想要第二个范围内的文本?在

如有任何帮助,我们将不胜感激,谢谢!!!在


Tags: 文本divformatdatavalue网站结构class
2条回答

试试选择.css('AA区+ 跨度:最后一个孩子::text').extract()

字符+告诉spider在类属性为“AA”的div的brother元素中选择span元素,即brother元素=在其class属性中也有“AA”的第二个div。在

在子范围:最后一个在span元素中选择最后一个span元素的spider(当然,在第二个div下面)也可以这样写:第n个孩子(2) ,这显然意味着选择第二个跨度元素。在

.extract()返回与该路径匹配的div列表。因此您可以迭代并打印所需的css类。有一些方法可以提取第一个元素,但不能提取第二个元素。在

请尝试:

 def parse(self, response):
     sel = Selector(response)
     results = sel.css('div.data-format-supply').extract()
     for index, result in enumerate(results):
         if(index == 1):
             print result  

相关问题 更多 >