Python Scrapy CSS选择器,用于选择文本和空白

Python Scrapy CSS选择器,用于选择文本和空白,python,web-scraping,scrapy,scrapy-spider,Python,Web Scraping,Scrapy,Scrapy Spider,因为我正在使用scrapy来清理包含表的站点。我使用CSS选择器获取类attr的元素。下面是示例代码 <span class="attr">Tamil Nadu - Greenshore Energy</span> <span class="attr"></span> <span class="attr">India</span> 获取跨度中的所有文本和空格。但是上面的选择器只返回下面的列表。留下空的跨度 [泰米尔纳德邦-

因为我正在使用scrapy来清理包含表的站点。我使用CSS选择器获取类attr的元素。下面是示例代码

<span class="attr">Tamil Nadu - Greenshore Energy</span>
<span class="attr"></span>
<span class="attr">India</span>
获取跨度中的所有文本和空格。但是上面的选择器只返回下面的列表。留下空的跨度

[泰米尔纳德邦-绿色海岸能源,印度]


因此,无论是否包含文本,我应该使用哪个选择器来获取所有跨度。

您可以执行以下操作:

>>> [tag.css('::text').extract_first(default='') for tag in response.css('.attr')]
['Tamil Nadu - Greenshore Energy', '', 'India']

尝试将
response.css('.attr::text')
放入一个变量中,然后手动从该变量中提取所需内容。我甚至在变量中也得到了这个[u'Tamil Nadu-Greenshore Energy',u'India']。我需要的[u'Tamil Nadu-Greenshore Energy',u'',u'India']
:text
不会返回空字符串。尝试使用scrapy xpath。通过阅读文档,确保返回您使用的方法。对你来说,实施事情会更容易。祝你好运
>>> [tag.css('::text').extract_first(default='') for tag in response.css('.attr')]
['Tamil Nadu - Greenshore Energy', '', 'India']