Sto provando a spogliare \ r \ n \ t caratteri con uno spider rognoso, facendo quindi un file json.Strip n t r in scrapy
Ho un oggetto "description" che è pieno di nuove righe e non fa ciò che voglio: abbinare ciascuna descrizione a un titolo.
Ho provato con map (unicode.strip()) ma in realtà non funziona. Essendo nuovo di scrapy, non so se c'è un altro modo più semplice o come la mappa unicode funzioni davvero.
Questo è il mio codice:
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())
ho provato anche con:
item['DESCRIPTION'] = str(sel.xpath('//p[@class="class-name"]/text()').extract()).strip()
Ma è sollevato un errore. Qual è il modo migliore?
Ciao, cosa intendi per "non funziona davvero"? 'strip()' considera solo i caratteri iniziali e finali, quindi se si desidera rimuovere qualsiasi cosa all'interno della stringa è necessario un altro modo. 'import re' e' re.sub ('[\ r \ n \ t]', '', 'Hel \ nlo \ r!') 'potrebbe aiutarti se questo è il tuo problema. –
Suggerisco di eseguire il checkout di 'ItemLoader's http://doc.scrapy.org/en/latest/topics/loaders.html che consente di gestire l'input e l'output di' Item's – Granitosaurus
QuentinPradet grazie, in effetti, paul's la risposta era buona, non lo sapevo. E Granitosauro Lo studio grazie –