2017-10-10 1 views
-1

Ich bin ziemlich neu zu scrapy, hier habe ich eine Spinne mit der Amazon URL nicht in der Lage, die Ausgabe auf den CSV zu bekommen.mit scrapy Erstellen einer Spinne und nicht in der Lage, Daten zu csv

Hier ist mein Code:

len(response.xpath('//h2[contains(@class,"a-size-base s-inline s-access-tit le a-text-normal")]/text()')) 24

ich irgendwelche Einstellungen ändern müssen:

import scrapy 

class AmazonMotoMobilesSpider(scrapy.Spider): 
name = "amazon" 
start_urls = ['https://www.amazon.in/Samsung-Mobiles/b/ref=amb_link_47?ie=UTF8&node=4363159031&pf_rd_m=A1VBAL9TL5WCBF&pf_rd_s=merchandised-search-leftnav&pf_rd_r=NGA52N9RAWY1W103MPZX&pf_rd_r=NGA52N9RAWY1W103MPZX&pf_rd_t=101&pf_rd_p=1ce3e975-c6e8-479a-8485-2e490b9f58a9&pf_rd_p=1ce3e975-c6e8-479a-8485-2e490b9f58a9&pf_rd_i=1389401031',] 
def parse(self,response): 
    product_name = response.xpath('//h2[contains(@class,"a-size-base s-inline s-access-title a-text-normal")]/text()').extract() 
    product_price = response.xpath('//span[contains(@class,"a-size-base a-color-price s-price a-text-bold")]/text()').extract() 
    yield {'product_name'product_name,'product_price': product_price} 

ist mein Shell dieses Ergebnis zeigt?

+0

Wie haben Sie den Scraper ausgeführt? Erhalten Sie einen Fehler in den Protokollen? Überprüfen Sie auch den Tippfehler @Arun erwähnt ist, was das Problem verursacht –

+0

Ich führe meine Spinne wie folgt aus: Scrapy Crawl Spidername, keine Fehler meine Shell gibt mir die Anzahl der Ergebnisse, aber nicht an CSV –

Antwort

0

zu generieren Ergebnisse im CSV benötigen Sie den Crawler mit einer Ausgabeoption

scrapy crawl -o results.csv spidername 

nur ausgeführt werden, wenn Sie eine Ausgabe der aktivieren Ergebnisse werden an die Datei gesendet. Andernfalls werden sie von Ihren Pipelines verarbeitet. Wenn Sie sie nirgends durch Pipeline speichern, dann werden sie nur auf Konsolenprotokollen des Terminals sein.

+0

der Code zeigt mir die Datei "C: \ Benutzer \ imp \ first_scrapy \ first_scrapy \ spiders \ Amazon_MotoMobiles.py", l ine 9 Ausbeute {'ProductName': Produktname, 'Preis': Produktpreis} ^ IndentationError: unerwarteter Einzug –

+0

Ihre vollständige Datei in http://pastebin.com/ veröffentlichen und einen Link zur Untersuchung teilt –

+0

Hier ist der Code https://pastebin.com/THPvAca1 –

0

Ich denke es ist, weil Ihr Ertrag einige Syntaxfehler im Wörterbuch hat.

Ändern Sie diese

yield {'product_name'product_name,'product_price': product_price} 

zu

yield {'product_name':product_name,'product_price': product_price} 
+0

Ich korrigierte meinen Code ... dann auch die Konsole mir Fehler –

+0

Ausbeute wirft { ‚Product‘: product_name, ‚Preis‘: PRODUCT_PRICE} IndentationError: unindent passt nicht jede äußere Einrückungsebene Hier ist meine bearbeitet Code \t Ausbeute { ‚Product‘: product_name , 'Preis': product_price} –

Verwandte Themen