python爬取数据然后存入mysql,python直接输出是中文,在mysql的表中打开变成乱码了?

CC467508144 2016-07-10 03:48:53
#这是python的代码:
cont=urllib2.urlopen(url).read()
rex=re.compile(r'\"tmall_vip_level\":(.*?)\,\"spuId\".*?\"sku\":(.*?)\,\"enableTime\".*?\"displayUserNick\":(.*?)\,\"displayUserNumId\".*?\"rateContent\":(.*?)\,\"rateDate\":(.*?)\,\"reply\"',re.S)
contents=rex.findall(cont)

for content in contents:
conn = MySQLdb.connect(host='127.0.0.1', user='root',passwd='19940513cc', db='pythonJD',port = 3306, charset = 'utf8')
cur = conn.cursor()
sql='INSERT INTO proxy(level,sku,user,content,date)values(%s,%s,%s,%s,%s)'
cur.execute(sql, (content[0],content[1].decode('gbk').encode('utf-8'),content[2].decode('gbk').encode('utf-8'),content[3].decode('gbk').encode('utf-8'),content[4]))
print 'success connect'
conn.commit()
cur.close()
conn.close()

mysql和python中所有的都设置为utf8了。是要修改数据库配置文件嘛,在哪改呢....
...全文
405 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qte_acm 2016-07-22
  • 打赏
  • 举报
回复
1、在查看数据库数据时, 需要先执行: set names utf8 , 这样才能显示中文 2、既然 python 直接输出 是中文, 那么存储到数据库时, 不需要做任何的 字符编码转换, 直接存入就ok
qte_acm 2016-07-22
  • 打赏
  • 举报
回复
1、在查看数据库数据时, 需要先执行: set names utf8
屎克螂 2016-07-11
  • 打赏
  • 举报
回复
或许你查看数据库的工具没有设置为utf-8
CC467508144 2016-07-10
  • 打赏
  • 举报
回复
补充:其中的content[1].decode('gbk').encode('utf-8')之后存入数据库的数据类型就是utf8了嘛?还是要换种方法写?

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧