有没有人有使用 Peewee 将抓取数据从 scrapy 存储到 MySQLdb 的示例?

Does anyone have an example to store crawl data from scrapy to MySQLdb using Peewee?

我是 Scrapy 的新手。我用 Google 搜索并在 Stack Overflow 中进行了搜索,但没有确切的事情是我想做的。这两天我一直在纠结这些。

这是我到目前为止 pipelines.py 得到的结果。有人能指出它有什么问题或给我一些使用 Peewee 将 Scrapy 连接到 MySQLdb 的示例代码吗?

from MySQLdb import *
from peewee import *


mysql_db = MySQLDatabase('nasdaq_db', user='root', passwd='')

class Quote(Model):
    """A base model that will use our MySQL database"""
    time = CharField()
    price = CharField()
    volume = CharField()
    class Meta:
        database = mysql_db


db.connect()
Quote.create_table()

class RealTimeQuotePipeline(object):
    def process_item(self, item, spider):
        item = Quote(time=item['time'], price=item['price'], volume=['volume'])
        item.save()

运行:

scrapy crawl nasdaq

错误信息:

peewee.OperationalError: (1049, "Unknown database 'nasdaq_db'")

如果我把它改成:

mysql_db = MySQLDatabase(db='nasdaq_db', user='root', passwd='')

还有一条错误信息:

TypeError: __init__() takes at least 2 arguments (1 given)

您需要确保数据库 nasdaq_db 存在于您的 mysql 实例中。你可以打开 mysql 和 运行:

create database nasdaq_db;

那么你应该可以连接了。您第一次使用了正确的语法:

db = MySQLDatabase('nasdaq_db', user='root', passwd='')