我試圖用scrapy蜘蛛去除\ r \ n \ t字符,然後生成一個json文件。scrapy中的Strip n t r
我有一個充滿新行的「描述」對象,它不會做我想要的:將每個描述與標題匹配。
我試着用map(unicode.strip()),但它並沒有真正起作用。作爲scrapy的新手,我不知道是否有另一種更簡單的方法或map unicode的真實工作方式。
這是我的代碼:
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())
我也試過:
item['DESCRIPTION'] = str(sel.xpath('//p[@class="class-name"]/text()').extract()).strip()
但它引發的錯誤。最好的方法是什麼?
你好,你說的「它並沒有真正的工作」是什麼意思? 'strip()'只考慮前導字符和尾隨字符,所以如果你想去掉字符串中的任何東西,你需要其他方法。 'import re'和're.sub('[\ r \ n \ t]','','Hel \ nlo \ r!')'可以幫助解決這個問題。 –
我會建議結帳'ItemLoader's http://doc.scrapy.org/en/latest/topics/loaders.html它允許你管理輸入和輸出你的'Item's – Granitosaurus
QuentinPradet謝謝,實際上是保羅的答案很好,我不知道。和Granitosaurus我會學習,謝謝 –