若干知识点

1.数据库cursor.fetchall()的返回类型:

out:

[{'detail_link': 'https://movie.douban.com/subject/1291546/'}, {'detail_link': 'https://movie.douban.com/subject/1292720/'}, {'detail_link': 'https://movie.douban.com/subject/1295644/'}]

2.cursor.fetchone():将只返回一条结果,返回单个字典类型如:
out:

{'detail_link': 'https://movie.douban.com/subject/1291546/'}

3.(1)SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15(因为索引从0开始)
(2)SELECT * FROM table LIMIT 5; //检索前 5 个记录行 //换句话说,LIMIT n 等价于 LIMIT 0,n。
(3)为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.(据我实际测试这个加-1不行)
4.SELECT count(*) FROM test.comment250; //据网友测试查询总条数用count(*)优化,时间效率高。

新问题:

问题一

scrapy运行断点,也就是爬虫爬到一半,pycharm不名原因的关了。如何解决?

方法1

设置日志,看在哪出现的断点
在setting.py中进行以下设置可以被用来配置logging

# 默认: True,启用logging
LOG_ENABLED = True# 默认: 'utf-8',logging使用的编码
LOG_ENCODING = "utf-8"# 默认: None,在当前目录里创建logging输出文件的文件名
LOG_FILE = "name.log"# 默认: 'DEBUG',log的最低级别
LOG_LEVEL = "DEBUG"# 默认: False 如果为 True,进程所有的标准输出(及错误)将会被重定向到log中。
# 例如,执行 print "hello" ,其将会在Scrapy log中显示。
LOG_STDOUT = False
from datetime import datetime# 当前时间
today = datetime.now()
# 日志文件按日期命名
log_file_path = "logs/log_{}_{}_{}.log".format(today.year, today.month, today.day)
# 日志输出级别
LOG_LEVEL = "DEBUG"
# 日志输出路径
LOG_FILE = log_file_path

日志是有了然而并没看出问题所在。但是以后应该会用到

方法2

在写入数据库时,用select语句检测是否写入过相应数据,而避免再次写入?(这个问题不用考虑了,因为第二个问题,我直接删库了(咦惹,你说傻不傻。))
当然其实也不用考虑,因为我设置了主键,是唯一的,不会再次写入相同的数据

问题二

发现有人用图片做名字,还有评论也可能会有图片,如何存储至mysql?
解决:以下仅是个人方法:*
首先我修改了my.ini的配置,全改成utf8mb4格式了
我还干了这个,在mysql的命令行模式下依次执行如下命令,待都成功执行后,再重启mysql服务

set character_set_client = utf8mb4;
set character_set_connection = utf8mb4;
set character_set_database = utf8mb4;
set character_set_results = utf8mb4;
关闭mysql服务

**然后**把数据库表给改了,部分设置加上了COLLATE utf8mb4_unicode_ci(当然全加试试也可以,其实在表结尾加上ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;估计一劳永逸了吧。)
如下图示例:

            create table comment250( `movie_id` text COLLATE utf8mb4_unicode_ci,`content` text COLLATE utf8mb4_unicode_ci,`useful_num` varchar(255) COLLATE utf8mb4_unicode_ci,`star` int,`time` varchar(255) COLLATE utf8mb4_unicode_ci,`people_name` text COLLATE utf8mb4_unicode_ci,`people_url` varchar(255),`comment_id` int,`URL` varchar(255),primary key (`comment_id`))

灵感来源:MYSQL中的COLLATE是什么

mysql中有utf8和utf8mb4两种编码,在mysql中请大家忘记utf8,永远使用utf8mb4。这是mysql的一个遗留问题,mysql中的utf8最多只能支持3bytes长度的字符编码,对于一些需要占据4bytes的文字,mysql的utf8就不支持了,要使用utf8mb4才行。

最后重新创建表,再插入数据,展示以下神奇操作(我把彩虹扒下来了):

问题三

出现了低级错误:

(1264, "Out of range value for column 'comment_id' at row 1")

显然是我的定义的int类型太小了,改成了bigint(总感觉哪里不对)

ok,目前的问题解决。

scrapy豆瓣爬虫mysql存储名字有图片的问题(关于utf8mb4)相关推荐

  1. mysql存储新闻文字图片的字段类型

    mysql存储新闻文字图片的字段类型,使用text类型. mysql中text是大字段类型对应oracle中应该是clob(处理大长度的字符串),varchar类型对应varchar2.

  2. Scrapy豆瓣爬虫 爬取用户以及用户关注关系

    文章目录 明确任务 1.新建mysql数据库以及数据表 1.1 创建数据库 1.2 创建用户信息表users 1.3 创建用户关注表user_follows 笔记一: mysql中utf8与utf8m ...

  3. mysql存储和读取图片

    首先,介绍一下mysql相关的数据类型:MySQL中有四种BLOB类型,TinyBlob(最大255Byte), Blob(最大65K), MediunBlob(16M), LongBlob(最大4G ...

  4. MySQL存储文本和图片

    Oracle中大文本数据类型, Clob 长文本类型 (MySQL中不支持,使用的是text) Blob 二进制类型 MySQL数据库, Text 长文本类型TINYTEXT: 256 bytesTE ...

  5. python 豆瓣爬虫:自动下载周星驰图片

    目录 效果演示 代码 效果 爬虫流程 打开网页 获取数据 保存数据 效果演示 废话不多说,先看下代码和效果 代码 # coding:utf-8 import requests import jsond ...

  6. mySql存储,读取图片

    step1 创建表 step2   数据库链接工具类 package qq; import java.sql.Connection; import java.sql.DriverManager; im ...

  7. mysql怎么放入图片_往MySQL中存储图片的方法

    1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL ...

  8. mysql scrapy 重复数据_大数据python(scrapy)爬虫爬取招聘网站数据并存入mysql后分析...

    基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频) 根据TIOBE语言排行榜更新的最新程序语言使用排行榜显示,python位居第三,同比增加2.39%,为什么会越来越火,越来越受欢迎 ...

  9. 爬虫-scrapy数据的持久化存储

    今日概要 基于终端指令的持久化存储 基于管道的持久化存储 1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指 ...

最新文章

  1. ubuntu11.10 安装tpc_w
  2. Cadence allegro PCB 设计中,出零件位置图时,如何将丝印自动放在器件中心
  3. 2014年电大计算机应用基础网考试题,2017年电大计算机应用基础网考试题与答案...
  4. The LMAX disruptor Architecture--转载
  5. django 1.9 mysql_Python3.5+Django1.9+MySQL57+PyCharm5.0.1配置
  6. Python-OpenCV学习--外接摄像头实时检测文本框
  7. 五步教你尝鲜火爆的 Docker 技术
  8. 哇,居然可以用这种烙铁头拆元器件!!!
  9. JS中变量和函数的使用
  10. Spring再次涵盖了您:继续进行消费者驱动的消息传递合同测试
  11. c语言期终试卷,谁有c语言的往年期中试卷么
  12. 回味手写三层-增删改查
  13. 电脑虎牙,虎牙助手主播版电脑版
  14. 基于DOI码的批量文献下载脚本
  15. OFDM学习笔记(十)(MIMO-OFDM技术)
  16. MySQL的两阶段提交(数据一致性)
  17. java类private_Java访问类中private属性和方法
  18. python3 获取/备份 iPhone icloud云端 中相关数据
  19. IOS iap处理逻辑流程图再次梳理
  20. android 6.0表情下载,我的表情符号

热门文章

  1. Mac上如何截屏以及修改截屏快捷键
  2. 久等了! AI 时代的编程语言
  3. hdu-5015-233 Matrix-矩阵
  4. Python学习三:Python开发工具
  5. 微软旗下GitHub宣布裁员10%;谷歌高管警告:AI聊天机器人会产生错觉;华为称在ChatGPT领域早有布局丨每日大事件...
  6. 本地html文件怎么嵌入ppt,如何在PPT中嵌入网页,即把网页嵌入PPT?
  7. TIA STEP7 V15.1+EKB2019_07_07(百度网盘版)
  8. Storm基础(完整版)
  9. [统计学教程] 第七章 假设检验
  10. 【翻译】Towards Real-World Prohibited Item Detection: A Large-Scale X-ray Benchmark