strip()
can remove
only at the end of string, but not inside. If you have
inside text then use text = text.replace(
', '')
it seems you get
in list created by extract()
so you have to use list comprehension to remove from every element on list
data = response.css(find).extract()
data = [x.replace('
', '').strip() for x in data]
items[name] = data
EDIT: to remove spaces and
between sentences you can split('
')
to create list with sentences. then you can strip()
every sentence. And you can ' '.join()
all sentences back to one string.
text = 'Sentence 1
Sentence 2'
data = text.split('
')
data = [x.strip() for x in data]
text = ' '.join(data)
print(text)
The same in one line
text = 'Sentence 1
Sentence 2'
text = ' '.join(x.strip() for x in text.split('
'))
print(text)
The same with module re
import re
text = 'Sentence 1
Sentence 2'
text = re.sub('
s+', ' ', text)
print(text)
for name, find in zip(names.values(), finder.values()):
data = response.css(find.strip()).extract()
data = [re.sub('
s+', ' ', text) for text in data]
items[name] = data
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…