2013-08-06 161 views
1

我正在使用Scrapy,XPath和Python來刮取網站。當我得到結果時,它有\ r \ n。谷歌搜索已經讓我需要在我的XPath上使用normalize-space()。當我這樣做時,見下文,它不起作用。XPath:刪除空間功能不工作

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

我得到的是沒有定義的「全球名稱規範化錯誤。

任何想法?

+0

'正常化,space'是XPath函數不是一個Python函數。 – kev

+0

明白了。謝謝Kev – AngryWhopper

回答

6

normalize-space是XPath的,而不是Python的一個組成部分。因此,有沒有這樣的Python或函數。其他一些庫,它右邊的用法是這樣的(只是一個示例):

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

只是爲了滴在蟒蛇AA串,你可以使用STR方法的空格爲例如: strip將刪除前導和尾隨空格。

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

喜歡的東西normalize-space

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

太棒了!我扔了.strip()結束,它的工作。我會爲此加上書籤並記住它們。謝謝! – AngryWhopper

+0

很高興看到! :) – zhangyangyu