2017-11-11 4 views
0

Ich versuche eine Webseite mit dem Scrappy-Tool für Python zu verschrotten.Willst du einer Python-Scrappy-Ausgabe ein Feld hinzufügen wie eine Seriennummer, die für jedes verschrottete Produkt um 1 erhöht wird

Ich bin in der Lage, die Daten verschrotten, sondern

Ich mag ein zusätzliches Feld mit dem Ausgang wie eine „Serial ID“ hinzufügen: „3001“, für jedes Produkt es Fetzen die Seriennummer erhöhen sollte von 1, wie 3002, 3003, 3004 .............

def parse_dir_contents(self,response): 
    cat = response.meta['cat'] 
    serial_id = I 
    item = [] 
    content = {} 

    content['serial_id'] = serial_id 
    content['url'] = response.url 
    content['category'] = cat 
    brand = response.xpath('//div[@class="pageinfo__brdcrmb"]/text()').extract()[0].split('/') 
    content['brand'] = brand[1].strip() 
    I = I + 1 
    item.append(content) 
    output = json.dumps(item, sort_keys=True, indent=4, separators=(',', ': ')) 
    self.json_file.write(output) 

Für den oben-Code erhalte ich einen Fehler wie

Inhalt [ 'url'] = response.url NameEr ror: Name 'Antwort' ist nicht definiert

+0

könnten Sie die Vertiefung in der Frage beheben? nicht sicher, wo die Funktion 'parse_dir_contents' endet – PRMoureu

Antwort

0

Name I in der dritten Zeile ist nicht definiert. es ändern

serial_id = 1 

und dann erhöhen, dass mit:

serial_id += 1 

Sie scrapy Vorteile nutzen können (wie Pipeline, Elemente definieren und ...) und halten Sie Ihren Code ordentlich.

dieses hilfreiche Dokumente lesen:

https://doc.scrapy.org/en/latest/

Verwandte Themen