要用的第三方库
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()
#调用函数得到图片
结果
看文档
pyecharts文档(v2的)