scrapy爬虫教程(四)--通过pipeline存储到MySQL数据库

  1. 目前Python中主流的MySQL客户端有pymysql和mysqlclient两种,我使用的是pymysql,如果最求性能可以mysqlclient
    安装:pip install pymsql
  2. 在piplines中导入pymsql,创建链接(需要传入host、port、user、password、database),生成指针,使用execute执行SQL语句,同样需要在ITEM_PIPELINES中添加
    scrapy爬虫教程(四)--通过pipeline存储到MySQL数据库
    scrapy爬虫教程(四)--通过pipeline存储到MySQL数据库
    execute方法可以只传入SQL语句,如果需要对SQL语句进行格式化,在语句中用%s站位,同时传入元组,execute会在内部帮你进行格式化,如果传入元组execute会调用mogrify方法进行格式化
    scrapy爬虫教程(四)--通过pipeline存储到MySQL数据库
  3. 上面的数据库存储是同步的方式,下面用twisted异步库改造为异步的存储,提升存储速度
    需要使用的是twisted中的adbapi:from twisted.enterprise import adbapi,通过adbapi中的ConnectionPool类创建MySQL的连接池,第一个参数是使用的MySQL客户端,如果使用的是mysqlclient就填mysqlclient
    scrapy爬虫教程(四)--通过pipeline存储到MySQL数据库