如何用scrapy连接mysql

IDE我用的是pycharm2018

事先准备

在已经写好一个爬虫的前提下进行,现在已经进入到存储数据阶段了,由于同步存入数据库效率太低,这里直接使用异步存入
下面是我的items
如何用scrapy连接mysql_第1张图片

导包

这里我们需要用到几个包

from twisted.enterprise import adbapi //用于导入连接池
from pymysql import cursors //用于导入cursor类

pipline的书写

初始化

如何用scrapy连接mysql_第2张图片
当使用pipline时我们进行一个初始化,与mysql相连接,异步方法如何连接呢?答案就是使用连接池,该函数底层调用对应数据库的连接方法,只要将数据库名字写进去即可(‘pymysql’就是我们调用的库,加入dbprams参数就可以连接到我们指定的mysql数据库中了)
这里的dbprams中有一个cursorclass属性,这个属性在异步模式中应该算是必加的,我们调用cursors(操作写入数据库的游标)的dictcursor,代表用字典的方式往数据库里存
在这里插入图片描述
大概就是这个样子,写成字典的形式

sql语句书写

在这里插入图片描述
我们是插入数据库操作,自然是insert语句了, id属性那里设置值为null需要注意下
该插入方法我们作为一个静态属性使用(@property的作用),传参时就可以作为属性传入
在这里插入图片描述

执行sql语句

执行语句的关键就是
在这里插入图片描述
runInteraction会将insert_item函数保留下来变成异步
还有一个异常处理方法,出现异常时抛出,内容如下图,直接打印error
如何用scrapy连接mysql_第3张图片

链接:https://pan.baidu.com/s/1jQx4GucDGYP0G3NQn5R65w
提取码:im5d
源码丢这里防忘记

你可能感兴趣的:(个人经验)