Scrapy数据写入数据库(MySQL等)超简单写法

网上看了很多写入数据库的Pipeline写法,一般都要自己写SQL,另外,如果一个工程里有多个spider还要分别处理。我试了一下用sqlalchemypandas两个常用的库写,只要两行代码,非常简单!开始爬取数据时,会直接使用spider的name创建数据表写入数据。

下面是我写的一个例子:

from sqlalchemy import create_engine
import pandas as pd

class CarpricespiderPipeline(object):

    def __init__(self):
        # pip install pymysql
        # pip install mysqlclient 未安装会报错
        self.engine = create_engine('mysql://root:root@localhost:3306/carprice?charset=utf8', echo=False)

    def process_item(self, item, spider):
        # 用pandas读取item
        df = pd.DataFrame([item,])
        # 使用DataFrame的to_sql方法
        df.to_sql(name=spider.name, con=self.engine, if_exists='append', index=None)
        return item

你可能感兴趣的:(Scrapy数据写入数据库(MySQL等)超简单写法)