2017-06-20 4 views
0

Ich versuche zu lernen, wie man Scrapy und Python verwendet, aber ich bin überhaupt kein Experte ... sehr weit von hier. Ich habe eine leere Datei immer nach dieser Seite kriechen: product of c-discount und ich verstehe nicht, warum ...Scrapy - Crawled (200) und Referer: keine

Hier ist mein Code:

import scrapy 

from cdiscount_test.items import CdiscountTestItem 

f = open('items.csv', 'w').close() 

class CdiscountsellersspiderSpider(scrapy.Spider): 
    name = 'CDiscountSellersSpider' 
    allowed_domains = ['cdiscount.com'] 
    start_urls = ['http://www.cdiscount.com/mpv-8732-SATENCO.html'] 

    def parse(self, response): 
     items = CdiscountTestItem() 
     name = response.xpath('//div[@class="shtName"]/div[@class="shtOver"]/h1[@itemprop="name"]/text()').extract() 
     country = response.xpath('//div[@class="shtName"]/span[@class="shTopCExp"]/text()').extract() 

     items['name_seller'] = ''.join(name).strip() 
     items['country_seller'] = ''.join(country).strip() 
     pass 

Und das Ergebnis, das ich in den cmd Fenster erhalten:

2017-06-20 18:01:50 [scrapy.core.engine] INFO: Spider opened 
2017-06-20 18:01:50 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 
pages/min), scraped 0 items (at 0 items/min) 
2017-06-20 18:01:50 [scrapy.extensions.telnet] DEBUG: Telnet console 
listening on 127.0.0.1:6023 
2017-06-20 18:01:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET 
http://www.cdiscount.com/robots.txt> (referer: None) 
2017-06-20 18:01:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET 
http://www.cdiscount.com/mpv-8732-SATENCO.html> (referer: None) 
2017-06-20 18:01:51 [scrapy.core.engine] INFO: Closing spider (finished) 

Gibt es jemanden, der mir bitte hilft?

Vielen Dank !!!

Antwort

1

Das Hauptproblem hier ist, dass Sie den Artikel nicht von der parse Methode zurück zu Scrapy Engine übergeben. Ihr letzter Befehl in parse ist pass, also verwerfen Sie einfach den Artikel. Stattdessen müssen Sie den Artikel von Spider zur Scrapy-Engine zur weiteren Verarbeitung übergeben, indem Sie yield item verwenden.

+0

Ok, mein Schlechter ... Danke !! Ich suchte nach etwas Kompliziertem, wo nur eine Ausbeute nützlich war ... –

+0

Und weißt du '.re()'? Ich habe so etwas gesehen, um nur einen Teil des Textauszuges zu behalten, aber ich weiß nicht, welche Argumente ich in den() –