我正在使用Scrapy、XPath和Python来抓取网站。当我得到结果时,它已经\r\n。谷歌搜索发现我需要在XPath上使用normalize-space()。当我这样做的时候,见下文,它不起作用。
item ['runs'] = stats.select((normalize-space('//tr[@class="cell1"]/td[3]/text()')[count])).extract()
我得到一个"全局名称规范化未定义错误。
有什么想法吗?
normalize-space
是XPath的一部分,而不是Python。因此,在Python或其他一些库中没有这样的函数。它的正确用法是这样的(仅针对一个示例):
stats.select('''//tr[normalize-space(td/text()) = 'User Name']''').extract()
只需在python中删除字符串的空白,就可以使用str方法。例如:strip
将删除前导和尾随空白。
>>> 'rnrsamplern'.strip()
'sample'
类似normalize-space
:
>>> ' '.join('rns am rn plern'.split())
's am ple'