中国移动 线程 leetcodeLCP ssh命令 dedecms Kotlin CK DHCP matplotlib websocket concurrency linktosql smtp vue特点 进销存源码 mysql查看锁表 a标签去除下划线 python安装mysql python获取数据类型 pythonset input函数python python基本语法 python中的map函数 python正则表达式语法 python的开发工具 java使用mysql java中正则表达式 怎么安装java环境 java删除目录 sql综合利用工具 狮子狗出装 python输入数字 html5网页制作 eclipse中文版下载 winterboard 骰子表情 音乐狂app comsol下载 bz2解压 linux安卓模拟器
当前位置: 首页 > 学习教程  > python

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

2021/2/6 22:23:50 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

初始条件,具体可见我的其他文章。 1.安装Python。Python 学习笔记 第一篇 Python的安装与配置 2.安装Pycharm,并导入第三方包。Python 学习笔记 第二篇 Python IDE安装(二)--PyCharm安装及使用教程 3.安装MySQL。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;


本文链接: http://www.dtmao.cc/news_show_2000069.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?