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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容