读取csv数据到词云图并保存图片

前言

要用的第三方库

pyecharts

snap_selenium

pandas

准备

首先

用snap_selenium中的snapshot,但是snapshot,只支持Chrome,和Safari

而我用的edge,但是我有msedgedriver,以前写selenium爬虫的时候,驱动edge。

所以,我决定偷梁换柱,把snapshot的源码中的Chrome给改了。

看源码

snapshot驱动的关键代码,没有edge,有个get_chrome_driver方法,把这个方法改了    
if not driver:
        if browser == "Chrome":
            driver = get_chrome_driver()
        elif browser == "Safari":
            driver = get_safari_driver()
        else:
            raise Exception("Unknown browser!")

偷梁换柱

# 本来是驱动chrome的,然后,嘻嘻嘻,哈哈哈
def get_chrome_driver():
    options = webdriver.EdgeOptions()
    options.add_argument("headless")
    return webdriver.Edge(options=options)

可以驱动,小操作。

其次

写selenium爬虫都过去一段时间了,msedgedriver报了个错,总之就是版本不符合,需要更新

下载,去官网,更新msedgedriver,我的msedgedriver路径在

C:\Users\520\AppData\Local\Programs\Python\Python310\msedgedriver.exe。看着情况更新。

最后

得到的图片背景居然是黑的。。。

需要在初始化词云时,写上初始化的参数,直接看代码。

正文

import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import WordCloud
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
# 得到图片,上面是导包
def get_tupian():
    make_snapshot(snapshot, 'csv.html', '123.png')
# 读取csv文件,path是csv路径
df=pd.read_csv(path)
data=[]
for i in df.values:
    a=(i[0],i[4])
    data.append(a)
# 看pyechart的文档,词云图的data是这样的格式[(word1, count1), (word2, count2)],所以,这么写。
#  在结尾给出pyechart的文档
(
    WordCloud(init_opts=opts.InitOpts(bg_color='white'))
# bg_color 背景颜色,如果不设置,得到的图片的背景是黑色的
    .add(series_name='csv',data_pair=data,word_size_range=[10,70])
    .set_global_opts(
        title_opts=opts.TitleOpts(title='实验',title_textstyle_opts=opts.TextStyleOpts(font_size=23)),
        tooltip_opts=opts.TooltipOpts(is_show=True)
    )
    .render('csv.html')
)
# 其他参数可以看文档,我也在学习,一时说不出,(0.0)(0.0)(0.0)
get_tupian()
#调用函数得到图片

总结

结果

读取csv数据到词云图并保存图片_第1张图片

看文档

pyecharts文档(v2的)

你可能感兴趣的:(python,selenium)