strip()
может удалить \r\n
только в конце строки, но не внутри. Если у вас есть \r\n
внутри текста, тогда используйте text = text.replace(\r\n', '')
похоже, вы получаете \r\n
в списке, созданном extract()
, поэтому вам нужно использовать понимание списка для удаления из каждого элемента в списке
data = response.css(find).extract()
data = [x.replace('\r\n', '').strip() for x in data]
items[name] = data
РЕДАКТИРОВАТЬ: для удаления пробелов и \r\n
между предложениями вы можете split('\r\n')
для создания списка с предложениями. тогда вы можете strip()
каждое предложение. И вы можете ' '.join()
все предложения вернуться к одной строке.
text = 'Sentence 1\r\n Sentence 2'
data = text.split('\r\n')
data = [x.strip() for x in data]
text = ' '.join(data)
print(text)
То же самое в одной строке
text = 'Sentence 1\r\n Sentence 2'
text = ' '.join(x.strip() for x in text.split('\r\n'))
print(text)
То же самое с модулем re
import re
text = 'Sentence 1\r\n Sentence 2'
text = re.sub('\r\n\s+', ' ', text)
print(text)
for name, find in zip(names.values(), finder.values()):
data = response.css(find.strip()).extract()
data = [re.sub('\r\n\s+', ' ', text) for text in data]
items[name] = data