我正在借助scrapy将内容提取到数组中。每个元素都有多余的字符“:”,我想在其中尽可能高效地删除它们。
v = response.xpath('//div[@id="tab"]/text()').extract()
>>> v
['Marke:', 'Modell:']
>>> for i in v : re.sub(r'[^\w]', '', i)
...
'Marke'
'Modell'
现在看来可行,但是如何保留结果?
在我的代码中,v
并未更改:
>>> v
['Marke:', 'Modell:']
答案 0 :(得分:3)
您可以使用list comprehension解决此问题:
>>> v = response.xpath('//div[@id="tab"]/text()').extract()
>>>
>>> import re
>>> v = [re.sub(r'[^\w]', '', i) for i in v]
>>> v
['Marke', 'Modell']
答案 1 :(得分:1)
我认为为此引入regex
有点矫kill过正:使用字符串replace
方法:
v = ['Marke:', 'Modell:']
v = [str.replace(':', '') for str in v]
print(v)
输出:
['Marke', 'Modell']