方法一:(数据量小的时候推荐使用这种)

第一步:pip install mysqlclient

这里我没有报错 也许你可能会报错Read timed out   此时不要慌,这是因为你的网络问题,你使用豆瓣源再次下载:pip install  -i https://pypi.douban.com/simple/ mysqlclient

注意:以下针对linux用户(乌班图):可能这时你会报错安装失败,解决方法:

安装命令:sudo apt-get install libmysqlclient-dev

linux用户(centOs):

安装命令:sudo yum install python-devel mysql-devel

1,在pipeline.py中写入如下代码:

import MySQLdb

#采用同步的机制写入mysql

class MysqlPipeline(object):

def __init__(self):

self.conn = MySQLdb.connect('localhost','root','root','article_spider',charset='utf8',use_unicode=True)

self.cursor = self.conn.cursor()

def process_item(self,item,spider):

insert_sql = """ insert into article(title,create_date,url,fav_nums) VALUES(%s,%s,%s,%s)"""

self.cursor.execute(insert_sql,(item['title'],item['create_date'],item['url'],item['fav_nums']))

self.conn.commit()

2,在settings.py中写入如下代码:

ITEM_PIPELINES ={'ArticleSpider.pipelines.MysqlPipeline':1,

}

以上是一种插入数据库的方法,下面还有一种:mysql插入的异步方法

**********************************************************************华丽的分割线 ******************************************************************************

方法二:(数据量大的时候推荐使用这种,异步插入关系型数据库)

1,首先在settings.py中配置

MYSQL_HOST = 'localhost'

MYSQL_DBNAME ='article_spider'

MYSQL_USER = 'root'

MYSQL_PASSWORD = 'root'

2,在pipelines.py中贴入代码:

from twisted.enterprise import adbapi

import MySQLdb

import MySQLdb.cursors

#mysql插入的异步化,twisted 提供的异步api

class MysqlTwistedPipline(object):

def __init__(self,dbpool):

self.dbpool = dbpool

@classmethod#方法是固定的,会被spider调用的

def from_settings(cls,settings):

dbparms = dict(

host = settings['MYSQL_HOST'],

db = settings['MYSQL_DBNAME'],

user = settings['MYSQL_USER'],

passwd = settings['MYSQL_PASSWORD'],

charset = 'utf8',

cursorclass = MySQLdb.cursors.DictCursor,

use_unicode = True

)

#**dbparms代表可变化的参数

dbpool = adbapi.ConnectionPool("MySQLdb",**dbparms)

return cls(dbpool)

def process_item(self,item,spider):

#使用twisted将mysql插入变成异步执行

query = self.dbpool.runInteraction(self.do_insert,item)

query.addErrback(self.handle_error,item,spider)

#c处理异步插入的异常

def handle_error(self,failure,item,spider):

print(failure)

def do_insert(self,cursor,item):

#执行具体的插入

insert_sql = """ insert into article(title,create_date,url,fav_nums) VALUES(%s,%s,%s,%s)"""

cursor.execute(insert_sql,(item['title'],item['create_date'],item['url'],item['fav_nums']))

致辞插入数据库的方法完成。喜欢的记得点个赞哦。。。谢谢谢谢~~

python将数据存入mysql数据库中_python3 两种方法将数据存入mysql数据库相关推荐

  1. 怎么把html数据导入excel,将网页表格数据导入到Excel中的两种方法

    将网页表格数据导入到Excel中的第一种方法: 第一步,将包括所需表格的网页打开,并按CTRL+C把网址复制到剪贴板,以备下一步使用. 第二步,打开运行Excel软件,单击菜单栏中的"数据→ ...

  2. python将数据存入数据库_python3 两种方法将数据存入mysql数据库

    原博文 2017-09-22 18:25 − 方法一:(数据量小的时候推荐使用这种) 第一步:pip install mysqlclient 这里我没有报错 也许你可能会报错Read timed ou ...

  3. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

  4. 修改mysql数据库默认字符集_MySQL数据库之修改mysql默认字符集的两种方法详细解析...

    本文主要向大家介绍了MySQL数据库之修改mysql默认字符集的两种方法详细解析 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. (1) 最简单的修改方法,就是修改mysql的m ...

  5. dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法

    本文主要向大家介绍了MySQL数据库之c#mysql批量更新的两种方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 总体而言update 更新上传速度还是慢. 1:  简单的 ...

  6. C语言学习笔记-----scanf【通过键盘将数据输入到变量中】(两种用法)

    C语言学习笔记-----scanf[通过键盘将数据输入到变量中](两种用法) 用法一:scanf("输入控制符",输入参数): 功能: 将从键盘输入的字符转化为输入控制符所规定格式 ...

  7. 【Arduino串口数据保存到excel中常用三种方法】

    [Arduino串口数据保存到excel中常用三种方法] 1. 前言 2. 利用excel自带Data Streamer读取 2.1 启用 Data Streamer 加载项 2.2 刷写代码并将微控 ...

  8. Mysql使用binlog恢复数据解决误操作问题的两种方法

    Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...

  9. Python计算程序运行时间秒级/毫秒级的两种方法datetime和time

    Python计算程序运行时间秒级/毫秒级的两种方法datetime和time 简单粗暴,先上代码: import datetime import time# 方法一:datetime.datetime ...

最新文章

  1. mac中用命令行运行mysql
  2. matlab mle pci为nan,matlab - 使用mle()估计自定义分布的参数 - 堆栈内存溢出
  3. Java 按位与 Java代码_(Java)按位与运算符-是否用于减少前一个位间隔?
  4. spss主成分综合得分_【2020.】这种主成分得分图SPSS能够实现吗?
  5. setsockopt()函数 参数详解
  6. 汉高澳大利亚matrix矩阵计算器
  7. 使用Spring Security3的四种方法概述
  8. Python—实训day8—掌握DataFrame的常用操作
  9. Nginx从入门到掌握【(第3节(共3节)】
  10. 高中计算机基础知识课件,高中信息技术基础教案
  11. dota2国服服务器位置,Dota2国服完整安装教程
  12. scratch英语计算机,scratch 2怎么做计算器
  13. python下载哪一个安装包_python中正确安装对应版本的包
  14. python学习笔记2-基本数据类型
  15. 【ES源码分析】强制合并分段(_forcemerge API)源码分析
  16. 《高级软件测试管理》学习笔记——人员技能 团队构成
  17. 科学计算机如何开机,计算器上关机和开机键分别是什么?
  18. 随笔 2022年11月第二周
  19. 直播预告 | NeurIPS 专场八
  20. 谷歌审查元素获取网络资源链接

热门文章

  1. Android官方开发文档Training系列课程中文版:OpenGL绘图之响应触摸事件
  2. 【ACL2020】Relabel the Noise: Joint Extraction of Entities and Relations via Cooperative Multiagents
  3. 项目Beta冲刺(团队) --1/7
  4. 06-图1 列出连通集
  5. A. PHP文件运行原理
  6. 手机进销存系统/供应链管理系统
  7. fprintf 和 perror 的理解1
  8. 怎样使用Eclipse来开发Android源码
  9. 【开始研究Community Server,转贴一点东西】Community Server资料收集
  10. 2_RabbitMQ工作模式_Work queues_Publish/Subscribe_Routing_Topics_HeaderRpc