2

Scrapy、XPath、および Python を使用して Web サイトをスクレイピングしています。結果を取得すると、\r\n が表示されます。Google 検索の結果、XPath で normalize-space() を使用する必要があることがわかりました。私がそれを行うと、以下を参照してください。動作しません。

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

「グローバル名の正規化が定義されていません」というエラーが表示されます。

何か案は?

4

1 に答える 1

7

normalize-spacePython ではなく、XPath の一部です。そのため、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'
于 2013-08-06T05:30:24.747 に答える