本文来源吾爱破解论坛
本帖最后由 麦米尔加弗德 于 2020-2-15 20:01 编辑
起因是看到了https://www.52pojie.cn/thread-1105570-1-1.html这个帖子在家也没有事,就自己也弄了一个,就当练手,偷懒直接借鉴弹幕的xpath了
全自动,你安装了需要的模块,输入正确的连接就可以使用了
字体一定要在c盘,一般人不会改盘符吧
最后的自动打开图片是我自己想的,网上都是瞎几把说,查资料要死了,最后还是抄自己以前的代码哈哈哈
[Python] 纯文本查看 复制代码
import re import requests import os from lxml import etree from wordcloud import WordCloud class word_cloud: def __init__(self): self.path = 'bilibili弹幕词云制作v1.5' self.rooturl = input('请输入视频弹幕网址并按回车键:\n') def start(self): #获取av号 av = self.get_av() #获取xml地址,视频标题 xml_url, title = self.get_xml_url_title() #从xml地址提取全部弹幕 danmulist = self.get_danmu(xml_url) #开始制作词云 self.start_make_wordcloud(danmulist, av, title) def get_av(self): av = re.search(r'/av(\d+)', self.rooturl).group(1) return av def html_request(self, url): headers = {'User-Agent': 'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14'} try: response = requests.get(url, headers = headers) return response.content except: print('链接输入有误,请检查后输入') def get_xml_url_title(self): content = self.html_request(self.rooturl).decode() cid = re.search(r'cid=(\d+)&aid=', content).group(1) xml_url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=%s'%(cid) title = etree.HTML(content).xpath('//*[@id="viewbox_report"]/h1/span/text()')[0] return xml_url,title def get_danmu(self, xml_url): content = self.html_request(xml_url) danmu = etree.HTML(content).xpath('//d/text()')[:-1] return danmu def make_dir(self, av): #根据路径创建文件夹 path = '%s/%s'%(self.path, av) if not os.path.exists(path): os.makedirs(path) print('创建目录成功词云已保存至%s'%(path)) else: print('目录存在,词云已保存至%s'%(path)) return path def start_make_wordcloud(self, danmulist, av, title): danmu = ' '.join(danmulist) path = self.make_dir(av) #设置词云图片的参数 wdcld = WordCloud(font_path='‪C:\Windows\Fonts\msyh.ttc', scale=20, max_words=30, prefer_horizontal=1.0) #font_path 修改成字体的路径,这里默认是微软雅黑,可以自己修改 #scale 用于设置图片的清晰度 #maxwords 用于设置显示最大词汇量 #prefer_horizontal 用于设置横向字符在所有字符中的占比,这里设置为1,意为100%字符都为横向字符 wdcld.generate(danmu) #这里输出词云图片,参数为文件名和相应地址 name = '%s.jpg' % (title) wdcld.to_file('%s/%s' % (path, name)) #自动打开图片 os.chdir(path) os.system(name) if __name__ == "__main__": try: word_cloud().start() print('运行成功,词云已经生成') except: print('运行失败')
运行结果
上传图片不会用了==
没有合法的文件被上传,俺不清楚
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: Python 资源大全中文版
- 下一篇: 【笔记】班级查询未交作业人并输出