【问题标题】:XPath: Remove space function not workingXPath:删除空间功能不起作用
【发布时间】:2013-08-06 13:30:24
【问题描述】:

我正在使用 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 xpath scrapy


【解决方案1】:

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

stats.select('''//tr[normalize-space(td/text()) = 'User Name']''').extract()

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

>>> '\r\n\rsample\r\n'.strip()
'sample'

类似normalize-space:

>>> ' '.join('\r\ns  am  \r\n ple\r\n'.split())
's am ple'

【讨论】:

  • 太棒了!我最后扔了 .strip() 并且它起作用了。我会将其加入书签并牢记在心。谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-07-17
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多