1.爬虫插入 mysql时报 "Incorrect string value: '\\xF0\\x9F\\x93\\x9D\\xC2\\xA0...' for column 'con的错误。

原因

Mysql的utf8编码最多3个字节,可能有4个字节的字符。utf8mb4兼容utf8,且比utf8能表示更多的字符。通常是emoji表情符号

(1)修改数据库的字符集

字符集编码修改成utf8mb4_unicode_ci  。  

常见错误_ico

如果已经创建了表,还要修改表的字符集

常见错误_ci_02

 

 相当于

ALTER TABLE `dbname`.`tablename` 
COLLATE = utf8mb4_unicode_ci ;

 

(2)或者考虑过去掉表情

 pip install emoji

清除命令:

emoji.demojize(str)

(3)也是过滤掉表情不用导入emoji包

def filter_emoji(desstr,restr=''):  
try:
co = re.compile(u'[\U00010000-\U0010ffff]')
except re.error:
co = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
return co.sub(restr, desstr)

 

我只用第二种方法,