Tôi đang cố gắng loại bỏ \ r \ n \ t ký tự bằng một con nhện bị rách, sau đó tạo một tệp json.Dải n t r trong scrapy
Tôi có một đối tượng "mô tả" có đầy đủ các dòng mới và nó không làm những gì tôi muốn: khớp từng mô tả với một tiêu đề.
Tôi đã thử với bản đồ (unicode.strip()) nhưng nó không thực sự hoạt động. Là mới để cạo tôi không biết nếu có một cách đơn giản hơn hoặc làm thế nào bản đồ unicode thực sự hoạt động.
Đây là mã của tôi:
def parse(self, response):
for sel in response.xpath('//div[@class="d-grid-main"]'):
item = xItem()
item['TITLE'] = sel.xpath('xpath').extract()
item['DESCRIPTION'] = map(unicode.strip, sel.xpath('//p[@class="class-name"]/text()').extract())
Tôi cũng thử với:
item['DESCRIPTION'] = str(sel.xpath('//p[@class="class-name"]/text()').extract()).strip()
Nhưng nó nhướn lỗi. Cách tốt nhất là gì?
Xin chào, ý bạn là "nó không thực sự hoạt động"? 'strip()' chỉ xem xét các ký tự đầu và cuối, vì vậy nếu bạn muốn loại bỏ bất kỳ thứ gì bên trong chuỗi, bạn cần một cách khác. 'import re' và' re.sub ('[\ r \ n \ t]', '', 'Hel \ nlo \ r!') 'có thể giúp nếu đó là vấn đề của bạn. –
Tôi khuyên bạn nên kiểm tra 'ItemLoader' s http://doc.scrapy.org/en/latest/topics/loaders.html cho phép bạn quản lý đầu vào và đầu ra của 'Item's – Granitosaurus
QuentinPradet cảm ơn, trên thực tế paul's câu trả lời là tốt, tôi không biết điều đó. Và Granitosaurus Tôi sẽ nghiên cứu cảm ơn –