一、在settings.py文件中配置数据库连接参数

# 数据库连接参数
DB_HOST = '192.168.183.1'
DB_PORT = 3306
DB_USER = 'root'
DB_PASSWORD = '
DB_DATABASE = 'a'
DB_CHARSET = 'utf8'

# 设置一个管道用于将数据插入数据库
ITEM_PIPELINES = {
'dushu.pipelines.DushuPipeline': 300,
'dushu.pipelines.DushuMysql':301,
}

二、在pipelines.py文件定义管道

读取settings文件中的参数:

from scrapy.utils.project import get_project_settings
settings = get_project_settings()

# 将settings文件导入到python文件
from scrapy.utils.project import get_project_settings
import pymysql

class DushuMysql(object):
def __init__(self):
#settings中包含了setting的属性
settings = get_project_settings()
self.host =settings['DB_HOST']
self.port = settings['DB_PORT']
self.user = settings['DB_USER']
self.password = settings['DB_PASSWORD']
self.database = settings['DB_DATABASE']
self.charset = settings['DB_CHARSET']
self.connect()

def connect(self):
self.conn = pymysql.connect(host=self.host,port=self.port,user=self.user,password=self.password,db=self.database,charset = self.charset,)
self.cursor = self.conn.cursor()

def process_item(self, item, spider):
try:
self.cursor.execute(
'insert into books values("%s","%s","%s")' % (item['src'],item['alt'],item['author'])
)
# 注意需要提交
self.conn.commit()
except Exception as e:
print(str(e))
return item

def close_spider(self, spider):
self.cursor.close()
self.conn.close()

最新文章

  1. 聊下git merge --squash
  2. 待研究:insert客商账户触发器增加条件提示为空
  3. 转 Android中shape中的属性大全
  4. JAVA中的NIO(二)
  5. [HDOJ1175]连连看
  6. mac下使用github
  7. linux查找某个文件中单词出现的次数
  8. vijos1194 Domino
  9. Flink Program Guide (3) -- Event Time (DataStream API编程指导 -- For Java)
  10. Oracle EBS使用adpatch工具打patch过程【Z】
  11. 软件测试学习日志————round 0 An impressed error in my past projects
  12. 利用objc的runtime来定位次线程中unrecognized selector sent to instance的问题
  13. 汉字Collection
  14. git如何忽略文件
  15. Python之Queue模块
  16. JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
  17. 排错-Loadrunner添加Windows Resource计数器提示“找不到网络路径”解决方法
  18. nmap扫描出现tcpwrapped
  19. Transaction And Lock--唯一索引下INSERT导致的死锁
  20. ATL字符宏使用以及代码测试

热门文章

  1. 批量修改文件的编码格式至UTF-8
  2. 设计模式之Mediator模式(笔记)
  3. Git(三):加入与提交
  4. gem5中event queue执行原理机制具体分析
  5. Leetcode:Singel Number
  6. HDOJ 5296 Annoying problem LCA+数据结构
  7. 使用IIS承载WCF服务
  8. 使用深度学习检测DGA(域名生成算法)——LSTM的输入数据本质上还是词袋模型
  9. Spring深入浅出(二)IOC的单例 ,继承,依赖,JDBC,工厂模式以及自动装载
  10. vuejs fatherandson