Я установил FEEDS = {'format': 'jsonlines'} в settings.py , и каждый раз, когда я запускаю spider, появляется ошибка:
File "C:\Users\jonh\anaconda3\lib\site-packages\scrapy\utils\conf.py", line 115, in feed_complete_default_values_from_settings
out = feed.copy()
AttributeError: 'str' object has no attribute 'copy'
Если я удалю FEEDS = {'format': 'jsonlines'} , паук сможет работать правильно. Как исправить эту проблему?
ОБНОВЛЕНИЕ: Это код, который я использую для запуска паука:
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
process=CrawlerProcess(get_project_settings())
process.crawl('amazon')
process.start()
это паук:
import scrapy
from scrapy.loader import ItemLoader
class amazonItem(scrapy.Item):
cover=scrapy.Field()
title=scrapy.Field()
author=scrapy.Field()
price=scrapy.Field()
publisher=scrapy.Field()
ASIN=scrapy.Field()
class amazonSpider(scrapy.Spider):
name = 'amazon'
start_urls = [
'https://www.amazon.cn/b?ie=UTF8&node=1852758071'
]
def parse(self, response):
books=response.xpath('//div[@class="a-fixed-left-grid"]')
for book in books:
book_url=book.xpath('.//h2').xpath('../@href').get()
if book_url:
yield response.follow(book_url,callback=self.parse_book)
def parse_book(self,response):
bookinfo=ItemLoader(item=amazonItem(), response=response)
bookinfo.add_xpath('cover','//div[@id="ebooks-img-canvas"]/img/@src')
bookinfo.add_xpath('title','//span[@id="productTitle"]/text()')
bookinfo.add_xpath('author','//span[@class="author notFaded"]/a/text()')
bookinfo.add_xpath('price','//span[@class="a-size-base a-color-price a-color-price"]/text()')
bookinfo.add_xpath('publisher','//td[@class="bucket"]//li[4]/text()')
bookinfo.add_xpath('ASIN','//div[@class="content"]//b[contains(text(),"ASIN")]/../text()')
yield bookinfo.load_item()