Ich verwende CSVFeedSpider
für das Scrappen einer lokalen CSV-Datei (foods.csv).Fehler bei der Verwendung von CSVFeedSpider
Hier ist sie:
calories name price
650 Belgian Waffles $5.95
900 Strawberry Belgian Waffles $7.95
900 Berry-Berry Belgian Waffles $8.95
600 French Toast $4.50
950 Homestyle Breakfast $6.95
Hier ist mein Code für foods.py Datei:
from scrapy.spiders import CSVFeedSpider
from foods_csv.items import FoodsCsvItem
class FoodsSpider(CSVFeedSpider):
name = 'foods'
start_urls = ['file:///users/Mina/Desktop/foods.csv']
delimiter = ';'
quotechar = "'"
headers = ['name', 'price', 'calories']
def parse_row(self, response, row):
self.logger.info('Hi, this is a row!: %r', row)
item = FoodsCsvItem()
item['name'] = row['name']
item['price'] = row['price']
item['calories'] = row['calories']
return item
items.py:
import scrapy
class FoodsCsvItem(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
calories = scrapy.Field()
aber es gibt mir dieser Fehler:
2017-11-18 13:04:26 [scrapy.core.engine] DEBUG: Crawled (200) <GET file:///users/Mina/Desktop/foods.csv> (referer: None)
2017-11-18 13:04:26 [scrapy.utils.iterators] WARNING: ignoring row 1 (length: 1, should be: 3)
2017-11-18 13:04:26 [scrapy.utils.iterators] WARNING: ignoring row 2 (length: 1, should be: 3)
2017-11-18 13:04:26 [scrapy.utils.iterators] WARNING: ignoring row 3 (length: 1, should be: 3)
2017-11-18 13:04:26 [scrapy.utils.iterators] WARNING: ignoring row 4 (length: 1, should be: 3)
2017-11-18 13:04:26 [scrapy.utils.iterators] WARNING: ignoring row 5 (length: 1, should be: 3)
2017-11-18 13:04:26 [scrapy.utils.iterators] WARNING: ignoring row 6 (length: 1, should be: 3)
Am Anfang habe ich nur ‚Name‘ und ‚Preis‘ aber es gab mir den gleichen Fehler kratzte so I ‚Kalorien‘ nach dieser Lösung Scrapy: Scraping CSV File - not getting any output aber nichts geändert hinzuzufügen versucht!
Ich brauche nur "Name" und "Preis" zu kratzen, wie kann ich das tun?
Ok. Ich bearbeite es, aber es gibt mir den gleichen Fehler. – MAGS94