2
items.py:Scrapy - Eingangsprozessor
import scrapy
from scrapy.loader.processors import MapCompose
def filter_spaces(value):
return value.strip(" ").strip("\n")
class LotItem(scrapy.Item):
num = scrapy.Field(input_processor=MapCompose(filter_spaces))
spider.py:
def parse_item(self, response):
item = LotItem()
item['num'] = response.xpath('//div/span/text()').extract()[0]
yield item
response.xpath('//div/span/text()').extract()[0]
gibt eine Art von
"\n1234 "
Und ich brauche es in drehen: "1234"
Aber Ich bekomme immer noch ein Objekt in der Form - {'num': '\n1234 '}
Vielen Dank !!!
* "mein Code fehlgeschlagen "* ist keine gültige Problembeschreibung. Bitte posten Sie den ** Volltext ** aller Rückverfolgungen oder Fehler und * beschreiben Sie * deutlich, was passiert und wie es sich von dem unterscheidet, was Sie gerne tun würden. Haben Sie auch die Funktion ['strip()'] (https://docs.python.org/3.5/library/stdtypes.html#str.strip) ausprobiert? – MattDMo
natürlich gibt es keine Fehler. Ich bekomme nur {'num': '\ n1234'} und nicht {'num': '1234'}, wie ich es erwarte. Und natürlich benutze ich genau strip() um einige Leerzeichen loszuwerden. – Dennis
ok ... ich habe es mit strip() geschafft ... ich habe es einfach zu extract() [0] .strip() hinzugefügt und das ist die Lösung ... aber es gibt ein ähnliches Problem - es gibt andere Eigenschaft CITY ... und es sieht oft in Objekt wie {"city": "G \ u00fcnzburg"} wegen der deutschen Sprache ... Ich habe versucht, extrahieren() [ 0] .encode ('utf-8') aber das hat nicht geholfen .. ?? irgendwelche Vorschläge? – Dennis