zoukankan      html  css  js  c++  java
  • MySQL无法存储emoji表情方案

    今天学习爬虫爬伯乐在线的文章,由于在文章中有emoji表情,导致有emoji表情的文章都爬取不下来

    经过一番搜索之后终于解决了问题。

    原文可参考:

    1. MySQL无法存储Emoji表情问题

    2. mysql存emoji表情报错处理

    1. 在navicat中

    如果在新建表之前就改变数据库的编码,建表的时候好像可以自己转变过来吧

    查看字符集编码:show variables like '%char%';

    更改数据库编码:ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    更改表编码:ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 

    ----------------------------------------------

    下面这些,好像没用到,要是不行也可以用用

    set @@character_set_client='utf8mb4';
    set @@character_set_connection='utf8mb4';
    set @@character_set_results='utf8mb4';
    set @@character_set_server='utf8mb4';

    2. 在爬虫代码中

    class MysqlPipeline(object):
        def __init__(self):
            self.conn = MySQLdb.connect('127.0.0.1', 'root', 'root', 'article_spider', charset='utf8mb4', use_unicode=True)
            self.cursor = self.conn.cursor()
    
        def process_item(self, item, spider):
            insert_sql = '''
                insert into article(title,url,bookmark_nums,url_object_id,content)
                VALUE (%s,%s,%s,%s,%s)
            '''
            self.cursor.execute(insert_sql, (item['title'], item['url'], item['bookmark_nums'],item['url_object_id'], item['content']))
            self.conn.commit()

  • 相关阅读:
    CentOS 7 安装MySQL 5.7
    Introduction to BGP (4)
    Introduction to BGP (3)
    Introduction to BGP (2)
    Introduction to BGP (1)
    Cisco NAT Fundation
    Linux安装Nginx
    GRE协议学习与练习
    Oracle Study Note : Users and Basic Security
    Oracle Study Note : Tablespace and Data Files
  • 原文地址:https://www.cnblogs.com/wongbingming/p/6858644.html
Copyright © 2011-2022 走看看