Python 学习笔记 第三篇 Python实现网易云评论网页爬虫+词云展示 (Pycharm+Mysql)


初始条件,具体可见我的其他文章。

1.安装Python。Python 学习笔记 第一篇 Python的安装与配置

2.安装Pycharm,并导入第三方包。Python 学习笔记 第二篇 Python IDE安装(二)--PyCharm安装及使用教程

3.安装MySQL。MySQL安装和配置图解

4.下载 chromedriver.exe,并将运行程序目录添加到环境变量中。win系统下下载chromedriver.exe驱动的步骤

 

(一)创建 search.py 

from selenium import webdriver
import pymysql
import time
conn = pymysql.connect(
    host = 'localhost',
    port = 3306,
    user = 'root',
    passwd = 'root',
    db = 'study',
    charset='utf8mb4'
)
cursor = conn.cursor()
# 隐藏浏览器
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')  # 给设置 的属性添加headless属性,使浏览器隐藏起来,不弹出。
driver = webdriver.Chrome("chromedriver.exe", options=chrome_options)
url = "https://music.163.com/#/song?id=411349966"
driver.get(url)
# 切换到对应的ifame标签里
driver.switch_to_frame('g_iframe')
for i in range(1, 500):
    driver.execute_script("var q=document.documentElement.scrollTop=5000")
    #定义class名字为cnt f-brk的div标签
    nodes = driver.find_elements_by_xpath('//div[@class="cnt f-brk"]')
    for node in nodes:
        sql = 'insert into wyy values(%s)'
        cursor.execute(sql, [node.text])
        conn.commit()
        # 定义text名字为 下一页 的a标签 selenium元素定位之xpath定位详解 
    a = driver.find_element_by_xpath('//a[text()="下一页"]') # 筛选文本内容为下一页的a标签
    a.click()  # 点击该标签
    time.sleep(1)  # 点击下一页之后休眠两秒,等待页面加载
    print('第{}页评论爬取完成'.format(i))

(二)创建 show.py 

import pymysql
import jieba
import wordcloud
import numpy as np
from PIL import Image  # pillow
conn = pymysql.connect(
    host = 'localhost',
    port = 3306,
    user = 'root',
    passwd = 'root',
    db = 'study',
    charset='utf8mb4'
)
cursor = conn.cursor()
sql = 'select * from wyy'
cursor.execute(sql)
pingluns = cursor.fetchall()
fenci = []
for pinglun in pingluns:
    fenci += jieba.lcut(pinglun[0].split(':')[-1])
s = ' '.join(fenci).replace('\n', ' ')
print(s)
mask = np.array(Image.open('timg_meitu_1.jpg'))
w = wordcloud.WordCloud(font_path='C:\Windows\Fonts\方正粗宋简体.ttf',scale=4,background_color='white',mask=mask)
w.generate(s)
w.to_file('musicpl.jpg')

(三)结果输出到 musicpl.jpg


(四)可能存在的问题

1.爬虫过程中,出现特殊字符数据库插入数据报错   pymysql.err.DataError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8E\\xB5\\xE9\\x9F...'

解决方法:修改数据库表的编码为utf8mb4

第一步:打开命令行

1)方法一:在Mysql安装目录下打开按住shift之后右键文件夹会出现在此处打开命令窗口,不按shift不会出现

2)方法二:win+R 输入 cmd 打开运行,输入 cd + 在Mysql安装目录 切换到Mysql安装目录

第二步:输入 mysql -uroot -p 命令进入数据库。

 

第三步:输入 命令use 数据库名;  

              进入数据库 ,输入命令 alter table 表名 convert to character set utf8mb4;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值