笔记:在调试爬虫时出现的数据库写入异常问题/解决matplotlib制图无法显示中文的问题

编程入门 行业动态 更新时间:2024-10-19 20:41:20

笔记:在调试<a href=https://www.elefans.com/category/jswz/34/1770264.html style=爬虫时出现的数据库写入异常问题/解决matplotlib制图无法显示中文的问题"/>

笔记:在调试爬虫时出现的数据库写入异常问题/解决matplotlib制图无法显示中文的问题

在调试爬虫时出现的数据库写入异常问题

本项目使用scrapy生成爬虫框架。
经分析可得,产生如上问题的主要原因可能为:

1.数据库连接异常,未正确连接到数据库;
2.数据爬取异常,没有获取到需写入的字段;
3.sql语法有误;


修改前的管道文件如下:

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: .html# useful for handling different item types with a single interface
import pymysqlclass QuotePipeline:# 初始化def __init__(self):#连接到MySQL数据库self.connect = pymysql.connect(# 主机名host='localhost',# 用户名user='root',# 密码password='123456',# 数据库database='quotes',# 数据库编码charset='utf8',)self.cursor = self.connect.cursor()# 处理每一条数据def process_item(self, item, spider):item = dict(item)# 数据表名table = 'quote'# 字段的名称keys = ','.join(item.keys())# 字段的值values = ','.join(['%s'] * len(item))# 构造SQL语句sql = 'insert into {table}({keys}) values({values})'.format(table=table, keys=keys, values=values)try:# 执行SQL语句if self.cursor.execute(sql, tuple(item.values())):self.connectmit()print("succeed!")except:print("Failed!")self.connect.rollback()return item# 关闭爬虫def close_spider(self, spider):# 关闭cursorself.cursor.close()# 关闭连接self.connect.close()

经过检查代码,确定spiders无误,可通过确定的Xpath爬取到数据;接着检查init方法,确定数据库参数无误,基本可以确定问题出现在sql语句上。
接着检查控制台信息:

不难看出程序在执行 self.cursor.execute() 方法时抛出了异常 “Failed” ,并且经过对 commit() 方法的测试,可以看出 commit() 提交的内容为 None, 进一步查看 self.cursor.execute() 方法,发现控制台报出了sql语法错误:

此时检查数据库版本:本次项目使用 MySQL 5.0.45
而 MySQL 5 是不支持类似

insert into table(keys) values(values) 

的操作的。

修改后的管道文件:

sql = 'insert into {table} values({values})'.format(table=table, values=values)

此时检查数据库表:

成功写入了数据。


解决matplotlib制图无法显示中文的问题

1.第一种方法:

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['KaiTi']
mpl.rcParams['font.serif'] = ['KaiTi']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串

2.第二种方法:使用本地文字库文件,或下载后使用绝对路径引用。

更多推荐

笔记:在调试爬虫时出现的数据库写入异常问题/解决matplotlib制图无法显示中文的问题

本文发布于:2024-03-08 19:15:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1721994.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   中文   异常   数据库   笔记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!