XPath:删除空间函数不起作用

Ang*_*per 2 python xpath scrapy

我正在使用Scrapy,XPath和Python来抓取一个网站.当我得到结果时,它有\ r \n.谷歌搜索已经产生我需要在我的XPath上使用normalize-space().当我这样做时,见下文,它不起作用.

item ['runs'] = stats.select((normalize-space('//tr[@class="cell1"]/td[3]/text()')[count])).extract()
Run Code Online (Sandbox Code Playgroud)

我得到一个"全局名称规范化未定义错误.

有任何想法吗?

zha*_*gyu 7

normalize-space是XPath的一部分,而不是Python.所以在Python或其他一些库中没有这样的函数.它的正确用法是这样的(仅用于样本):

stats.select('''//tr[normalize-space(td/text()) = 'User Name']''').extract()
Run Code Online (Sandbox Code Playgroud)

只是为了在python中删除一个字符串的空格,你可以使用str方法.例如: strip将删除前导和尾随空格.

>>> '\r\n\rsample\r\n'.strip()
'sample'
Run Code Online (Sandbox Code Playgroud)

像这样的东西normalize-space:

>>> ' '.join('\r\ns  am  \r\n ple\r\n'.split())
's am ple'
Run Code Online (Sandbox Code Playgroud)