linux部署clash

部署方法

wanhebin/clash-for-linux: Linux 端使用 Clash 作为代理工具 (github.com)看文档即可(

本文完结

强烈建议去看文档

1

下载文件,用git或者手动传入都可以。

1
$ git clone https://github.com/wanhebin/clash-for-linux.git

2

编辑文件.env,修改变量CLASH_URL配置好clash订阅地址,修改变量CLASH_SECRET作为clash的web管理端登陆密码(不配置为随机,启动服务时控制台显示密码)

1
2
$ cd clash-for-linux
$ vim .env

3

运行脚本start.sh启动服务。需要sudo权限。

1
./start.sh
1
sudo ./start.sh

然后照控制台说的做

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
正在检测订阅地址...
Clash订阅地址可访问! [ OK ]

正在下载Clash配置文件...
配置文件config.yaml下载成功! [ OK ]

正在启动Clash服务...
服务启动成功! [ OK ]

Clash Dashboard 访问地址:http://<ip>:9090/ui
Secret:xxxxxxxxxxxxx

请执行以下命令加载环境变量: source /etc/profile.d/clash.sh

请执行以下命令开启系统代理: proxy_on

若要临时关闭系统代理,请执行: proxy_off
1
2
$ source /etc/profile.d/clash.sh
$ proxy_on

4

启动服务后控制台会给一个web管理端地址,打开可以选择节点。

需要输入密码。

1
http://256.257.258.259:9090/ui

获取天气网地区-代码映射表

万年历api无法建立连接了,不知道为什么(XvX),于是想换一个api给机器人查天气

注意

程序编写于2022/09/28,注意代码的时效性

代码

最终格式为dict[地区名, 地区代码], 用pickle库二进制存入文件stations.silksINFn

请求天气的链接形如:http://t.weather.sojson.com/api/weather/city/101010100

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import aiohttp
import asyncio
import json
import pickle

SEMAPHORE = 8

async def get_provinces_code() -> dict[str, str]:
URL = 'http://www.weather.com.cn/data/city3jdata/china.html'
async with semaphore:
async with session.get(URL) as res:
return json.loads(await res.text())

async def get_cities_code(province_code: str) -> tuple[str, dict[str, str]]:
URL = 'http://www.weather.com.cn/data/city3jdata/provshi/{}.html'.format(province_code)
async with semaphore:
async with session.get(URL) as res:
return province_code, json.loads(await res.text())

async def get_stations_code(city_code: str) -> tuple[str, dict[str, str]]:
URL = 'http://www.weather.com.cn/data/city3jdata/station/{}.html'.format(city_code)
async with semaphore:
async with session.get(URL) as res:
return city_code, json.loads(await res.text())

async def query():
global session, semaphore
session = aiohttp.ClientSession()
semaphore = asyncio.Semaphore(SEMAPHORE)

provinces_dict: dict[str, str] = await get_provinces_code()

tasks: list[asyncio.Task[tuple[str, dict[str, str]]]] = []
for code, province in provinces_dict.items():
tasks.append(asyncio.ensure_future(get_cities_code(code)))
await asyncio.wait(tasks)

lst: list[str] = []
for task in tasks:
province_code, cities_dict = task.result()
for code, city in cities_dict.items():
lst.append(province_code + code)

tasks = [asyncio.ensure_future(get_stations_code(each)) for each in lst]
await asyncio.wait(tasks)

final_dict: dict[str, str] = {}
for task in tasks:
city_code, stations_dict = task.result()
for code, station in stations_dict.items():
final_dict[station] = city_code + code

with open('stations.silksINFn', 'wb') as f:
pickle.dump(final_dict, f)

def main():
global loop

loop = asyncio.get_event_loop()
loop.run_until_complete(query())

session.close()

if __name__ == '__main__':
main()


# http://t.weather.sojson.com/api/weather/city/101010100

其他

个人博客地址

获取中国天气网的 地区-代号 映射表

万年历api无法建立连接了,不知道为什么(XvX),于是想换一个api给机器人查天气

注意

程序编写于2022/09/28,注意代码的时效性

代码

最终格式为dict[地区名, 地区代码], 用pickle库二进制存入文件stations.silksINFn

请求天气的链接形如:http://t.weather.sojson.com/api/weather/city/101010100

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import aiohttp
import asyncio
import json
import pickle

SEMAPHORE = 8

async def get_provinces_code() -> dict[str, str]:
URL = 'http://www.weather.com.cn/data/city3jdata/china.html'
async with semaphore:
async with session.get(URL) as res:
return json.loads(await res.text())

async def get_cities_code(province_code: str) -> tuple[str, dict[str, str]]:
URL = 'http://www.weather.com.cn/data/city3jdata/provshi/{}.html'.format(province_code)
async with semaphore:
async with session.get(URL) as res:
return province_code, json.loads(await res.text())

async def get_stations_code(city_code: str) -> tuple[str, dict[str, str]]:
URL = 'http://www.weather.com.cn/data/city3jdata/station/{}.html'.format(city_code)
async with semaphore:
async with session.get(URL) as res:
return city_code, json.loads(await res.text())

async def query():
global session, semaphore
session = aiohttp.ClientSession()
semaphore = asyncio.Semaphore(SEMAPHORE)

provinces_dict: dict[str, str] = await get_provinces_code()

tasks: list[asyncio.Task[tuple[str, dict[str, str]]]] = []
for code, province in provinces_dict.items():
tasks.append(asyncio.ensure_future(get_cities_code(code)))
await asyncio.wait(tasks)

lst: list[str] = []
for task in tasks:
province_code, cities_dict = task.result()
for code, city in cities_dict.items():
lst.append(province_code + code)

tasks = [asyncio.ensure_future(get_stations_code(each)) for each in lst]
await asyncio.wait(tasks)

final_dict: dict[str, str] = {}
for task in tasks:
city_code, stations_dict = task.result()
for code, station in stations_dict.items():
final_dict[station] = city_code + code

with open('stations.silksINFn', 'wb') as f:
pickle.dump(final_dict, f)

def main():
global loop

loop = asyncio.get_event_loop()
loop.run_until_complete(query())

session.close()

if __name__ == '__main__':
main()


# http://t.weather.sojson.com/api/weather/city/101010100

自定义生成B站查成分脚本的脚本

基于三相之力

下载了 三相之力·蒸蒸日上脚本(三相之力脚本的三国杀拓展),然后修改成自定义生成脚本的脚本

说明

仅支持单标签

不支持混合标签,不支持多级标签

不能完美检测出成分,也可能会误伤无辜

效果预览

1111

222

食用方法

1.通过修改最上方mydict变量中的内容配置自定义规则

举例:在下方代码中,文明是可以显示在网页上的标签,keywords后面的内容是检测关键字,若检测到某用户与这些关键字有关时,就会给对应用户打上标签,color代表标签的颜色,可以搜索"rgb颜色表"查阅详细

1
2
3
4
5
6
7
8
'文明': {
'keywords': [
'肝文明', '玩文明', '打文明', '文明4', '文明5', '文明6', '文明VI', '统治胜利',
'科技胜利', '文化胜利', '外交胜利', '分数胜利', '宗教胜利', '老秦', '无战飞',
'黄金国'
],
'color': '#c929f5',
},

2.直接运行python脚本,运行完后会在脚本同目录生成一个叫BStationElementSerach.txt的文件

3.打开BStationElementSerach.txt,全选,复制,在油猴插件中新建脚本,粘贴,完工!

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
from typing import Any, Union

REFRESH_SEP = 4000

mydict: dict[str, dict[str, Union[list[str], str]]] = {
'文明': {
'keywords': [
'肝文明', '玩文明', '打文明', '文明4', '文明5', '文明6', '文明VI', '统治胜利',
'科技胜利', '文化胜利', '外交胜利', '分数胜利', '宗教胜利', '老秦', '无战飞',
'黄金国'
],
'color': '#c929f5',
},
'洞口骑士': {
'keywords': [
'空洞骑士', '洞口骑士', '丝之鸽', '丝之歌', '苦痛之路', '辐辉', '佐特', '奎若', '蓝湖',
'r45', '小骑士', '辐光', '龙牙哥', '龙牙姐', '三螳螂', '力量快劈', '稳体', '四锁',
'遗忘十字路', '苍绿之径', '真菌荒地', '雾之峡谷', '古老盆地', '皇家水道', '王国边缘',
'乌恩', '愚人竞技场', 'jjc3', '亡怒', '钢魂', '白色宫殿', '酸冲', '劈魂', '骨钉', '马爹',
'毛里克', '下砸', '劈波', '扭波', '0白'
],
'color': '#2532e9',
},
'蔚蓝': {
'keywords' : [
'蔚蓝', '玛德琳', 'celeste', 'Celeste', '兔子跳', '蹭墙跳', '大跳', '凌波',
'无体力上墙', '春三', '春四', '春五', '春3', '春4', '春5', '金草莓'
],
'color': '#ff2e42',
},
'求批': {
'keywords' : [
'求生之路', '打求', 'tank', 'witch', '药抗', '药役', '挂边躲牛','evo', '1tc', 'mayuyu',
'秒妹', 'Anne', 'diandian', 'zonemod', '消耗克', '吸铁', 'hunter', '一位喷', 'charger',
'jockey', 'spitter','smoker', 'boomer', 'RBT', 'VGT', 'nv', 'pubstar', 'amagami',
'特感'
],
'color': '#b93837',
},
# '小黑子':{
# 'keywords' : [
# '鸡你太美', 'ikun', '蔡徐坤', '只因', '坤坤', '两年半', '个人练习生', '你干嘛', '唱跳rap',
# '小黑子'
# ],
# 'color': '#d7af0f',
# },

}


MAIN_STRING = '''
// ==UserScript==
// @name 程序自动生成的B站成分查看脚本
// @namespace ScriptForAutoGenerateBStationElementSearchScript
// @version 0.1
// @description 自动生成的B站成分查看脚本, 暂不支持混合标签
// @author xulaupuz&nightswan&高贵乡公&脚本使用者
// @match https://www.bilibili.com/video/*
// @match https://www.bilibili.com/bangumi/play/*
// @match https://t.bilibili.com/*
// @match https://space.bilibili.com/*
// @match https://space.bilibili.com/*
// @match https://www.bilibili.com/read/*
// @icon https://static.hdslb.com/images/favicon.ico
// @connect bilibili.com
// @grant GM_xmlhttpRequest
// @license MIT
// @run-at document-end
// ==/UserScript==


(function () {{
'use strict';
const unknown = new Set()

//成分,可自定义
const nor = new Set()
{CODE_define_set}


//关键词,可自定义
{CODE_define_keyword}

//贴上标签,可自定义
const tag_nor = " [普通]"
{CODE_define_tag}


const blog = 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space?&host_mid='
const is_new = document.getElementsByClassName('item goback').length != 0 // 检测是不是新版

//标签颜色,可自定义,默认为B站会员色
const tag_nor_Inner = "<b style='color: #11DD77'>" + tag_nor + "</b>"
{CODE_define_Inner}


const get_pid = (c) => {{
if (is_new) {{
return c.dataset['userId']
}} else {{
return c.children[0]['href'].replace(/[^\d]/g, "")
}}
}}

const get_comment_list = () => {{
if (is_new) {{
let lst = new Set()
for (let c of document.getElementsByClassName('user-name')) {{
lst.add(c)
}}
for (let c of document.getElementsByClassName('sub-user-name')) {{
lst.add(c)
}}
return lst
}} else {{
return document.getElementsByClassName('user')
}}
}}


console.log(is_new)
console.log("正常加载")


let jiance = setInterval(() => {{
let commentlist = get_comment_list()
if (commentlist.length != 0) {{
// clearInterval(jiance)
commentlist.forEach(c => {{
let pid = get_pid(c)

{CODE_add_Inner}

if (nor.has(pid)) {{
if (c.textContent.includes(tag_nor) === false) {{
c.innerHTML += tag_nor_Inner
}}
return
}}

unknown.add(pid)
//console.log(pid)
let blogurl = blog + pid
// let xhr = new XMLHttpRequest()
GM_xmlhttpRequest({{
method: "get",
url: blogurl,
data: '',
headers: {{
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}},
onload: function (res) {{
if (res.status === 200) {{
//console.log('成功')
let st = JSON.stringify(JSON.parse(res.response).data)

unknown.delete(pid)

let tag_flag = false

{CODE_add_tag}

//添加纯良标签
if (!tag_flag) {{
c.innerHTML += tag_nor_Inner
nor.add(pid)
}}
}} else {{
console.log('失败')
console.log(res)
}}
}},
}});
}});
}}
}}, {refresh_sep})
}})();

'''

def define_one_set(tag_name: str) -> str:
_ = f'const set_{tag_name} = new Set()\n'
return _

def define_one_tag(tag_name: str) -> str:
_ = f'const tag_{tag_name} = " [{tag_name}]"\n'
return _

def define_one_keyword(keyword_name: str) -> str:
_ = f'const keyword_{keyword_name} = "{keyword_name}"\n'
return _

def define_one_Inner(tag_name: str, color = None) -> str:
style = '' if not color else f'style=\'color: {color}\''
_ = f'const tag_Inner_{tag_name} = "<b {style}>" + tag_{tag_name} + "</b>"\n'
return _


def add_one_tag(tag_name: str):
lst: list[str] = mydict[tag_name]['keywords']
_keywords_judge = f'st.includes(keyword_{lst[0]})'
for each_keyword in lst[1 : ]:
_keywords_judge += f' || st.includes(keyword_{each_keyword})'

_ = '''
if ({CODE_keywords_judge}) {{
c.innerHTML += {CODE_Inner}
{CODE_set}.add(pid)
tag_flag = true
}}
'''.format(
CODE_keywords_judge = _keywords_judge,
CODE_Inner = f'tag_Inner_{tag_name}',
CODE_set = f'set_{tag_name}',
)
return _

def add_one_Inner(tag_name: str) -> str:
_='''
if ({CODE_set}.has(pid)) {{
if (c.textContent.includes({CODE_tag}) === false) {{
c.innerHTML += {CODE_Inner}
}}
return
}}
'''.format(
CODE_set = f'set_{tag_name}',
CODE_tag = f'tag_{tag_name}',
CODE_Inner = f'tag_Inner_{tag_name}',
)
return _

def install_tags():
CODE_define_set = ''
CODE_define_keyword = ''
CODE_define_tag = ''
CODE_define_Inner = ''
CODE_add_tag = ''
CODE_add_Inner = ''

unique_keyword = set()

for key, value in mydict.items():
keywords, color = value['keywords'], value['color']

CODE_define_set += define_one_set(key)
CODE_define_tag += define_one_tag(key)
CODE_define_Inner += define_one_Inner(key, color)
for each_keyword in keywords:
if each_keyword not in unique_keyword:
CODE_define_keyword += define_one_keyword(each_keyword)
unique_keyword.add(each_keyword)

CODE_add_tag += add_one_tag(key)
CODE_add_Inner += add_one_Inner(key)

_ = MAIN_STRING.format(
CODE_define_set = CODE_define_set,
CODE_define_tag = CODE_define_tag,
CODE_define_Inner = CODE_define_Inner,
CODE_define_keyword = CODE_define_keyword,
CODE_add_tag = CODE_add_tag,
CODE_add_Inner = CODE_add_Inner,
refresh_sep = REFRESH_SEP
)
return _

def run():
with open('BStationElementSerach.txt', 'w', encoding='utf-8') as f:
f.write(install_tags())

if __name__ == '__main__':
run()

python 自动化测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import unittest

class Task_B(unittest.TestCase):
#初始化类
def setUp(self):
#在执行任何方法之前,都先执行setup方法
print('Initial Task B')

#挨个执行以test开头的方法
def test_002(self):
print('Task B test 2')

def test_001(self):
print('Task B test 1')

def tearDown(self):
print('Task B Teardown')

def NO(self):
print('this method can\'t be executed')

class Task_A(unittest.TestCase):
#初始化类
def setUp(self):
#在执行任何方法之前,都先执行setup方法
print('Initial Task A')

#挨个执行以test开头的方法
def test_002(self):
print('Task A test 2')

def test_001(self):
print('Task A test 1')

def tearDown(self):
print('Task A Teardown')

if __name__ == '__main__':
unittest.main()
print('发现按字典序执行')

pyecharts画极简单图

建议

建议去文档搬砖

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker

list1 = [list(z) for z in zip(Faker.choose(), Faker.values())]
print(list1)
c = (
Pie()
.add("",list1 )
.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-设置颜色"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)"))
.render("饼图的绘制.html")
)

selenium爬虫的简单使用

依赖

selenium模拟人使用浏览器,需要下载对应浏览器适合版本的驱动,放在与python.exe同目录

以Google举例: https://chromedriver.chromium.org/downloads

例子

Xpath,Css选择器路径 可以直接在浏览器F12右键复制

qq邮箱(点击头像)自动登录并发消息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
import os

driver = webdriver.Chrome()
driver.get('https://mail.qq.com')
time.sleep(2)
driver.maximize_window()
time.sleep(2)

driver.switch_to.frame("login_frame")
time.sleep(2)

driver.find_element(By.CSS_SELECTOR, "#img_out_?").click()
time.sleep(2)
driver.switch_to.default_content()
driver.find_element(By.CSS_SELECTOR, "#composebtn").click()
time.sleep(2)
driver.switch_to.frame('mainFrame')
time.sleep(2)
address=driver.find_element(By.CSS_SELECTOR, "#toAreaCtrl")
ActionChains(driver).click(address).send_keys("?@gmail.com").perform()
time.sleep(2)
subject=driver.find_element(By.CSS_SELECTOR, "#subject")
ActionChains(driver).click(subject).send_keys("123123").perform()

time.sleep(3)
mycontent=driver.find_element(By.CSS_SELECTOR, "#QMEditorArea > table > tbody > tr:nth-child(2) > td")

ActionChains(driver).click(mycontent).send_keys("abcdefghijklmn").perform()

driver.find_element(By.CSS_SELECTOR, '#toolbar > div > a:nth-child(1)').click()

os.system('pause')

python logging库 简易自学记录

设置日志等级并在控制台打印日志

1
2
3
4
5
6
7
8
9
10
11
12
13
import random
import logging

lst = [logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL]
# 设置日志输出等级
logging.basicConfig(level=random.choice(lst))

logging.debug('debug')
logging.info('info')
logging.warning('waring')
logging.error('error')
logging.critical('critical')

设置日志参数

在文件打印日志,带固定格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

import logging

logging.basicConfig(
filename= 'mylog.log',
level= logging.DEBUG,
format = '%(asctime)s <%(name)s> %(levelname)s: %(message)s',
filemode= 'a',
)

logging.debug('debug')
logging.info('info')
logging.warning('waring')
logging.error('error')
logging.critical('critical')


参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
"""
Do basic configuration for the logging system.

This function does nothing if the root logger already has handlers
configured, unless the keyword argument *force* is set to ``True``.
It is a convenience method intended for use by simple scripts
to do one-shot configuration of the logging package.

The default behaviour is to create a StreamHandler which writes to
sys.stderr, set a formatter using the BASIC_FORMAT format string, and
add the handler to the root logger.

A number of optional keyword arguments may be specified, which can alter
the default behaviour.

filename Specifies that a FileHandler be created, using the specified
filename, rather than a StreamHandler.
filemode Specifies the mode to open the file, if filename is specified
(if filemode is unspecified, it defaults to 'a').
format Use the specified format string for the handler.
datefmt Use the specified date/time format.
style If a format string is specified, use this to specify the
type of format string (possible values '%', '{', '$', for
%-formatting, :meth:`str.format` and :class:`string.Template`
- defaults to '%').
level Set the root logger level to the specified level.
stream Use the specified stream to initialize the StreamHandler. Note
that this argument is incompatible with 'filename' - if both
are present, 'stream' is ignored.
handlers If specified, this should be an iterable of already created
handlers, which will be added to the root handler. Any handler
in the list which does not have a formatter assigned will be
assigned the formatter created in this function.
force If this keyword is specified as true, any existing handlers
attached to the root logger are removed and closed, before
carrying out the configuration as specified by the other
arguments.
encoding If specified together with a filename, this encoding is passed to
the created FileHandler, causing it to be used when the file is
opened.
errors If specified together with a filename, this value is passed to the
created FileHandler, causing it to be used when the file is
opened in text mode. If not specified, the default value is
`backslashreplace`.

Note that you could specify a stream created using open(filename, mode)
rather than passing the filename and mode in. However, it should be
remembered that StreamHandler does not close its stream (since it may be
using sys.stdout or sys.stderr), whereas FileHandler closes its stream
when the handler is closed.

.. versionchanged:: 3.2
Added the ``style`` parameter.

.. versionchanged:: 3.3
Added the ``handlers`` parameter. A ``ValueError`` is now thrown for
incompatible arguments (e.g. ``handlers`` specified together with
``filename``/``filemode``, or ``filename``/``filemode`` specified
together with ``stream``, or ``handlers`` specified together with
``stream``.

.. versionchanged:: 3.8
Added the ``force`` parameter.

.. versionchanged:: 3.9
Added the ``encoding`` and ``errors`` parameters.
"""

一些组件的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import logging

handlerF = logging.FileHandler('mylog2.log') # 打印到文件的Handler
handlerC = logging.StreamHandler() # 打印到控制台的Handler
handlerF.setLevel(logging.ERROR) # 设置Handler的日志等级
handlerC.setLevel(logging.DEBUG)

formatter = logging.Formatter('%(asctime)s <%(name)s> %(levelname)s: %(message)s')
handlerF.setFormatter(formatter) # 设置输出格式
handlerC.setFormatter(formatter)

logger = logging.getLogger('MyLoggerName')
logger.setLevel(logging.WARNING) # 设置logger的日志等级
# 即使handlerC日志等级为DEBUG, 但logger最多输出WARNING等级日志

logger.addHandler(handlerF) # 装载Handler
logger.addHandler(handlerC)


logger.debug('debug')
logger.info('info')
logger.warning('waring')
logger.error('error')
logger.critical('critical')

使用配置文件

不想学了

词云

参数

Class WordCloud

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
r"""Word cloud object for generating and drawing.

Parameters
----------
font_path : string
Font path to the font that will be used (OTF or TTF).
Defaults to DroidSansMono path on a Linux machine. If you are on
another OS or don't have this font, you need to adjust this path.

width : int (default=400)
Width of the canvas.

height : int (default=200)
Height of the canvas.

prefer_horizontal : float (default=0.90)
The ratio of times to try horizontal fitting as opposed to vertical.
If prefer_horizontal < 1, the algorithm will try rotating the word
if it doesn't fit. (There is currently no built-in way to get only
vertical words.)

mask : nd-array or None (default=None)
If not None, gives a binary mask on where to draw words. If mask is not
None, width and height will be ignored and the shape of mask will be
used instead. All white (#FF or #FFFFFF) entries will be considerd
"masked out" while other entries will be free to draw on. [This
changed in the most recent version!]

contour_width: float (default=0)
If mask is not None and contour_width > 0, draw the mask contour.

contour_color: color value (default="black")
Mask contour color.

scale : float (default=1)
Scaling between computation and drawing. For large word-cloud images,
using scale instead of larger canvas size is significantly faster, but
might lead to a coarser fit for the words.

min_font_size : int (default=4)
Smallest font size to use. Will stop when there is no more room in this
size.

font_step : int (default=1)
Step size for the font. font_step > 1 might speed up computation but
give a worse fit.

max_words : number (default=200)
The maximum number of words.

stopwords : set of strings or None
The words that will be eliminated. If None, the build-in STOPWORDS
list will be used. Ignored if using generate_from_frequencies.

background_color : color value (default="black")
Background color for the word cloud image.

max_font_size : int or None (default=None)
Maximum font size for the largest word. If None, height of the image is
used.

mode : string (default="RGB")
Transparent background will be generated when mode is "RGBA" and
background_color is None.

relative_scaling : float (default='auto')
Importance of relative word frequencies for font-size. With
relative_scaling=0, only word-ranks are considered. With
relative_scaling=1, a word that is twice as frequent will have twice
the size. If you want to consider the word frequencies and not only
their rank, relative_scaling around .5 often looks good.
If 'auto' it will be set to 0.5 unless repeat is true, in which
case it will be set to 0.

.. versionchanged: 2.0
Default is now 'auto'.

color_func : callable, default=None
Callable with parameters word, font_size, position, orientation,
font_path, random_state that returns a PIL color for each word.
Overwrites "colormap".
See colormap for specifying a matplotlib colormap instead.
To create a word cloud with a single color, use
``color_func=lambda *args, **kwargs: "white"``.
The single color can also be specified using RGB code. For example
``color_func=lambda *args, **kwargs: (255,0,0)`` sets color to red.

regexp : string or None (optional)
Regular expression to split the input text into tokens in process_text.
If None is specified, ``r"\w[\w']+"`` is used. Ignored if using
generate_from_frequencies.

collocations : bool, default=True
Whether to include collocations (bigrams) of two words. Ignored if using
generate_from_frequencies.


.. versionadded: 2.0

colormap : string or matplotlib colormap, default="viridis"
Matplotlib colormap to randomly draw colors from for each word.
Ignored if "color_func" is specified.

.. versionadded: 2.0

normalize_plurals : bool, default=True
Whether to remove trailing 's' from words. If True and a word
appears with and without a trailing 's', the one with trailing 's'
is removed and its counts are added to the version without
trailing 's' -- unless the word ends with 'ss'. Ignored if using
generate_from_frequencies.

repeat : bool, default=False
Whether to repeat words and phrases until max_words or min_font_size
is reached.

include_numbers : bool, default=False
Whether to include numbers as phrases or not.

min_word_length : int, default=0
Minimum number of letters a word must have to be included.

collocation_threshold: int, default=30
Bigrams must have a Dunning likelihood collocation score greater than this
parameter to be counted as bigrams. Default of 30 is arbitrary.

See Manning, C.D., Manning, C.D. and Schütze, H., 1999. Foundations of
Statistical Natural Language Processing. MIT press, p. 162
https://nlp.stanford.edu/fsnlp/promo/colloc.pdf#page=22

Attributes
----------
``words_`` : dict of string to float
Word tokens with associated frequency.

.. versionchanged: 2.0
``words_`` is now a dictionary

``layout_`` : list of tuples ((string, float), int, (int, int), int, color))
Encodes the fitted word cloud. For each word, it encodes the string,
normalized frequency, font size, position, orientation, and color.
The frequencies are normalized by the most commonly occurring word.
The color is in the format of 'rgb(R, G, B).'

Notes
-----
Larger canvases make the code significantly slower. If you need a
large word cloud, try a lower canvas size, and set the scale parameter.

The algorithm might give more weight to the ranking of the words
than their actual frequencies, depending on the ``max_font_size`` and the
scaling heuristic.
"""

示例

基本使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ss = '''太 他妈的 浪漫 非常 讨厌 往 喜剧片 里 塞 煽情 部分 导致 从 后半段 几乎 笑 出来 煽情 塞进 喜剧片 里 适配 度 很 差 磕幻 喜剧 哈哈哈 哈哈哈 竟然 磕到 沈马 这 两张 老脸 最后 … 沈腾炸 国产 科幻 封 3 年 大门 笑点 不错 不是 全篇 笑 点 断断续续 算是 轻喜剧 紧张 泪点 觉得 并 突兀 整个 故事 完整性 很 高 冲突 来 有理有据 当然 幻想 无厘头 成分 并 出戏 整体而言 觉得 非常 值得 去 电影院 片子 《 独孤 月 月球 三年 治疗 地球 人 精神 内耗 》 煽情 得 有些 犯规 另外 刚子 美团 派 过去 喜剧片 爱情片 科幻片 灾难片 ; 有大 制作 小 温情 ; 笑点 多 可以 ; 有些 画面 真的 很 美 很 喜欢 一语 概之 值回 票价 沈马 组合 这次 期待 之上 好消息 沈腾 贡献 最富 层次 一次 表演 坏消息 成片 质量 到底 辜负 他 即便 他 以 一己 之力 将 小品 升华 成 电影 片中 呈现 一切都是 二手 成 一件 昂贵 而 蹩脚 A 货 没 看过 原著 漫画 真的 很烂 笑点 很 低俗 很 开心 麻花 水平 沈腾 马丽 意念 感挺强 这 能演 感觉 借鉴 不少 片子 蛮 无聊 上海 堡垒 笑点 增多 版 开心 麻花 这次 做出 一部 能 让 很多 人 刮目相看 电影 说真的 好久没 电影院 大笑 另外 沈腾 喜剧 节奏 真的 好 笑点 几乎 被 他 表演 带 起来 煽情 真的 太尬 只想去 一部 搞笑片 比 以前 所有 麻花 作品 加 起来 要 更 像 一部 成熟 商业 电影 宁愿 这样 电影 每年 来 一打 不想 再 看到 一部 什么 西红柿 李茶 夏洛特 多加 一星 支持 麻花 继续 朝 这个 方向 做 下去 不要 因为 部分 观众 突然 笑 出来 又 继续 去 做 那些 粗制滥造 小品 段子 长 视频 ( 当然 舔 番茄酱 设计 大可不必 国产电影 真的 把 观众 当 傻子 手电筒 化身 迪迦变 身器 请 相信 光 尬 出 银河系 🌌 还行 最好 笑 居然 黄子 韬 夏洛特 烦恼 充满 与 剧情 毫无 关联 段子 把 各种 弱势群体 困境 作为 笑料 有时 应该 说 低俗 其实 只 讲 一个 男人 白日梦 你 其中 找 不到 任何 激动人心 而 只是 “ 爽 ” 独行 月球 则 终于 不再 让 感到 冒犯 而是 坦然 笑 出声 来 月球 独行者 地球 遗民 双向 奔赴 让 感到 开心 麻花 电影 前所未有 情感 重量 夏洛特 烦恼 迎合 小人物 属于 小人物 它 将 无数 人 共有 重 生意 淫 搬 上银幕 实际上 倾诉 对 诸多 不公 诸多 不满 ; 独行 月球 却 将 同样 由 沈腾 饰演 主角 打 造成 大 英雄 甚至 所有 主旋律 电影 一样 将 那个 观众 投射 自身 形象 推向 牺牲 用 爱情 做 幌子 掩盖 不了 什么 恭喜 开心 麻花 完成 自己 弧光 恭喜 主旋律 电影 再添 一员大将 四星 送 你 再也 不见 除非 什么 时候 能以 马丽为 核心 拍 一部 … … 她 真的 值得 我能 绕 月 一周 抵达 补给站 能 徒手 与 赤 大袋鼠 搏斗 能 举起 核弹 冲向 陨石 块 始终 没有勇气 向 她 当面 表白 她 人 遥远 得 犹如 地 月 远在天边 她 心 比邻 得 仿佛 光亮 近在咫尺 这场 灾难 证明 人类 自然 面前 无比 渺小 这次 营救 证明 人类 危机 面前 无比 强大 后来 将 所有 勇气 与 爱 化成 星环 守护 蔚蓝 星球 最 喜欢 一起 点亮 地球 画面 蠢且 浪漫 你 永远 可以 相信 开心 麻花 给 屌丝 捏 脚 实力 确实 可以 跟 《 流浪 地球 》 持平 这 片子 放 好莱坞 肯定 得 Ryan Reynolds 、 Paul Rudd 或 任何 一个 Chris 主演 咱国 没有 好笑 中年 帅哥 能 兜 起 几十亿 票房 只有 沈腾 这么 说 上 一次 电影院 看到 那么 工整 、 顺畅 笑 中 带 着 泪 燃 电影 魔童 哪吒 流浪 地球 后半段 哭 好 几次 科幻 最 迷人 无可救药 浪漫 啊 几处 大 奇观 段落 能 感受 这种 绘本式 浪漫 : 为期 四十天 逐日 之旅 孤身一人 一 袋鼠 横跨 整个 月球 太阳 灭 白昼 永恒 ; 为 救 唯一 伙伴 袋鼠 决意 返航 最后 目睹 日光 一点一点 从 月 平线 沉下 此处 应有 《 最后 目击者 》 ; 驾着 袋鼠 拉橇 月 面 狂奔 孤独 壮阔 又 浪漫 喷气 推进 腾空而起 时 犹如 ET ; 以为 自己 被 人类 抛下 时 全世界 灯 为 你 亮 起 跪地 泣不成声 ; 以身 成为 火箭 推进器 粉身碎骨 化作 流星 一个 普通人 真正 成为 英雄 成为 地球 环 永远 常伴 你 左右 点 一首 《 飞奔 向 你 》 “ 终于 回家 ” 笑 出来 . gif 含腾量 高 不过如此 而且 一直 叫嚣 含腾量 沈腾 拍 过 不少 烂片 呀 😂 对 六岁 表弟 来说 刚刚 好 真 理解 影院 里 人 怎么 笑 出来 浪费 两个 小时 钱 钱 对不起 这么 说 光 想到 人类 唯一 幸存者 沈腾 感觉 很 好笑 丧成 狗 日子 里 能 用 一张 电影片 开怀大笑 俩 小时 你 说 值不值 之前 确实 让 人 很 难 相信 一部 沈腾 马丽 主演 喜剧片 里面 最好 笑 黄子 韬 … … 举着 核弹 炸 陨石 太 他 妈 浪漫 什么 时候 单恋 能 表现 得 像 变态 性骚扰 … 科幻 迷们 最 不能 理解 群体 原来 喜欢 说 科幻 部分 严谨 问 他们 什么 bug 呢 他们 又 说不出来 于是 改成 科幻 部分 硬核 哦 合着 国外 科幻 可以 有软 科幻 硬 科幻 国内 只有 硬核 科幻 烂 科幻 开心 麻花 史上 最好 作品 之一 心中 年度 华语 十佳 之一 剧本 改编自 韩国 漫画家 赵石 同名 作 这令 麻花 一定 程度 上 抛弃 以往 小品 风格 迈出 舒适 区 走向 正剧 证明 “ 段子 梗 ” 只是 一时 故事 才 王道 情节 设计 与 节奏 把 控 显然 下 功夫 人物 塑造 、 情感 铺垫 与 立意 升华 不断 袭来 一 波比 一波 更 高 矛盾 中 发挥 效果 一些 呼应 当下 时代 讽刺 隐喻 作为 点缀 同时 作用 于 故事 推进 中 视觉效果 ( 末日 废土 、 太空 镜头 ) 与 配乐 绝对 能 称为 国产 科幻 翘楚 者 对 影片 起到 极好 烘托 而 硬 科幻 知识 应用 与 适当 荒诞 脱节 — — 这本 理性 与 感性 根本性 矛盾 — — 本作 中 各自 牺牲 部分 成就 彼此 便 显得 如此 和谐 共处 它们 共同 营造 一个 浪漫 梦境 对 《 ET 》 等 科幻 经典 致敬 段落 凸显 这种 气质 这 独 属于 硬 科幻 喜剧 气质 沈腾 贡献 影帝 级别 独角戏 ~ 其实 很 喜欢 前半段 设定 — — 当 一个 人 被 “ 组织 ” 遗弃 后 组织 发现 他 意外 地 没有 身亡 竟然 想 利用 他来 树 典型 为此 不惜 抹杀 他 自己 发声 机会 ( 配音 ) 并 设法 搞定 相信 群众 — — 往 这 条线 走 下去 就是 黑色 版 《 楚门 世界 》 啊 我们 真要 拍出 接近 世界级 喜剧 吗 我们 知道 做 不到 那 让 主角 像 《 火星 救援 》 样 克服 各种 困难 后滥 一点 地 温情 搞笑 地回 地球 也好 可是 下 半段 为了 上升 意义 强行 让 组织 给 他 又 派 个 拯救 人类 任务 牺牲 这 简直 二次 利用 榨尽 价值 啊 而 可怕 屏幕 外 观众 很 感动 就是 他们 默认 这样 ok 喜剧 不好 笑 科幻 硬核 闹剧 一场 还要 上 拯救 人类 价值 全程 尬 出 星际 那种 烂 … 很 讨厌 这种 牺牲 主义 结局 现在 已经 恐 一些 跟 太空 有关 片 太空 片 英雄主义 就是 舍小 成就 大 真是 够 然后 前面 梗 烂 梗 举 一个 例子 : 喝水 被 烫 这个 搞笑 吗 重复 两次 每到 这种 烂 梗 电影院 里 发出 条件反射 般的 干笑 觉得 生理 不适 怎么 现在 吃屎 大家 愿意 笑 着 吃 真是 青蛙 煮 好 只配 吃屎 这 不是 “ 给 屌丝 捏 脚 ” 吗 很难 见到 这样 如此 具有 服务 精神 电影 公司 以 悲剧 结尾 更是 给 男人 做足 精神 大 保健 — — 为 英雄 奏响 凯歌 中 “ 楚门秀 ” 上 直播 所有 不适 不过 恼人 杂音 开心 麻花 格局 这样 哪怕 拍 月球 上 男人 活下去 意义 “ 找 一个 母 生一窝 小 ” 《 流浪 地球 》 高 概念 安土重迁 《 独行 月球 》 最 震撼 一个 段落 月球 灵堂 这 或许 就是 科幻片 此地 特色 道路 这年头 电影 市场 不是 主旋律 就是 开心 麻花 动不动 搞 排片 碾压 我们 观众 是不是 太 可悲 一点 谐音 梗 很 自恋 辣目 、 夏洛特 烦恼 这种 梗 把 自己 当 中心 再 碰上 “ 主角 大秀 、 配角 围观 ” 主线 人物 退居 三 堵墙 安全 区内 让 它 成 麻花 最 自恋 电影 配角 们 躺 尸 吃 瓜 失能 似的 被 主角 操控 影片 还有 一对 反对者 直接 被 抹 去 让 人 深觉 讽刺 如果 把 派 + 看作 大 号 病毒 还会 发现 它 科幻 得 不够 硬 喜剧 得 不够 软 主旋律 内核 倒 强得 很 那种 “ 牺牲 一个 人 拯救 千万家 ” 煽情 方式 犹如 抗疫 仿佛 创作者 做过 2021 年 社会 心理 调查 以 尝试 迎合 煽动 观众 可惜 啊 2022 年 暑期 社会 心理 已 不再 2021 状态 好久没 电影院 这么 烂 片 感觉 这么 热 夏天 比 这 电影 更 容易 让 人 忍耐 一 想到 中国 人进 电影院 这种 东西 打 心底 觉得 可怜 又 可惜 马蓝 星会 不会 给 独孤 月 守寡 知道 再 这么 拍下去 大家 应该 快能 给 中国 电影 守寡 美团 出钱 冠名 袋鼠 真是 可惜 把 所有 好评 评论 赞 一遍 那句话 喜剧片 目的 就是 让 人 开怀大笑 仅此而已 好像 当初 本山 大叔 小品 一样 你 说 他 什么 特别 深 内核 嘛 这些 人 非得 鸡蛋 里面 挑 骨头 无病呻吟 你们 要 挖 内核 不该 这种 类型 电影 没人 把 观众 当 傻子 好看 就是 好看 最后 市场 能 说明 问题 这些 自诩 着 审美 高 人别 来 沾边儿 承认 笑 几次 每 一次 以为 一个 引子 即将 迎来 一连串 大招 结果 点到为止 而且 掉 凳 笑 点 居多 感觉 编剧 功力 不足 好不好 先不说 希望 中国 能 多 拍 这样 星辰 大海 大片 别老 拍 高中生 谈恋爱 黄子 韬 一摘 假发 喷 哈哈哈 哈哈哈 以后 往 谐星 发展 感觉 贼 前途 	 如坐针毡 如芒刺背 如鲠在喉 喜剧 不是 喜剧 爱情 不是 爱情 科幻 不是 科幻 我们 渺小 而 伟大 脆弱 而 浪漫 “ 含腾量 ” 这一 说法 该 到此为止 用腾 把 两个 钟头 塞得 满满当当 没法 掩饰 全片 尴尬 ps : 把 二十年 前 某部 日本 特摄片 大结局 关键 剧情 用来 当 煽情 片段 够 离谱 哈 4 星是 但是 让 感受 最好 一点 不是 电影 剧情 而是 一种 真正 电影 感觉 它 很 陌生 它 像是 平行 时空 里 我们 20 年 之后 没有 坠入 过 生活 大坑 继续 往前 推进 22 年会 看到 一本 作品 可悲 国产电影 可怜 中国 观众 其实 开头 创意 挺 好 第一幕 走向 愈发 荒诞 一人 一只 大袋鼠 什么 鬼 中间 袋鼠 雪橇 算是 这个 意思 最后 牺牲 拯救 真的 没 必要 不如 让 袋鼠 一顿 乱 按 把 π 给 炸 荒诞 拯救 世界 音乐 特效 画面 一流 故事 弱 英雄主义 没有 流浪 地球 说服力 感染力 导演 能力 一般 独角戏 群像 戏 拍 挺 干瘪 煽情 过多 节奏 差 包袱 梗 没 啥意思 沈腾 演技 没 说 就是 胖 有点 油 显得 舔 狗 舔 有点 猥琐 马丽 演技 单一 hold 不住 冷面 心热 女上司 群像 里 除了 致敬 流浪 地球 兄妹 一个 台词 女 角色 没有 呵呵 让 真心 发笑 点 只有 给 袋鼠 配音 那 一处 剩下 不是 真的 好笑 好 无聊 … 看得 坐立 难安 … 能 给 负分 吗 卧槽 浪费 时间 批评家 占领 舆论 高地 等 懂 文学 普通人 只能 通过 打分 来 表示 抗议 老百姓 喜欢 文艺 才 好 文艺 建议 继续 推动 知识分子 贫下中农 家庭 中 接受 再 教育 韦登 蓝图 豆瓣 开分 7.3 算 预期 之内 毕竟 开心 麻花 豆瓣 路 人缘 不算 好 且 电影 确实 存在 一些 问题 加上 之前 不少 伪 麻花 电影 败 好感度 这个 分数 其实 还行 私心 希望 本片 票房 能 好 一些 主要 基于 产业 方面 考量 今年 由于 疫情 反复 电影院 确实 无以为继 大家 指着 这部 电影 救市 回血 影院 经理 这 几天 嗷嗷待哺 真的 挺难 另外 现在 市场 合格 喜剧电影 太 少 本片 不算 特别 出色 绝对 合格 路 人 观众 笑 得 很 开心 娱乐 作用 被 充分发挥 不该 用 文艺片 标准 来 审视 这部 电影 再有 就是 自从 流浪 地球 后 国产片 一直 没有 像样 科幻片 出现 这部 电影 科幻 元素 可以 凑合 凑合 以及 马丽继 成为 第一位 破 百亿 票房 中国 女演员 后 将 凭借 此片 超越 寡姐 成为 大陆 市场 最高 票房 女演员 戏谑 前 几天 马丽 被 评为 金 扫帚 最 失望 女演员 感慨 要求 别太高 老百姓 需要 这种 电影 如坐针毡 如芒刺背 如鲠在喉 他牙 到底 怎么 补上 一部 毫无 营养 低 智商 儿童 欢乐 尴尬 喜剧 建议 成人 观看 怕 影响 智商 特效 垃圾 不如 电视 广告片 拍 真实 这部 电影 如果 超过 6 分 豆瓣 网友 责任 独孤 月 : “ 现在 一个 好消息 一个 坏消息 好消息 : 这是 目前为止 沈腾 最 全方位 、 多层次 展示 表演 一部 喜剧片 坏消息 : 开心 麻花 电影 离 最初 部分 价值观 越来越 远 ” 原来 两个 小时 可以 这么 漫长 笑点 太尬 主题 太 大 剧情 太 水 影片 全球 亮灯 之前 内容 挺 喜欢 讲 一个 孤独 个人 与 被困 集体 相互 拯救 故事 制作 工整 、 节奏 流畅 、 笑 泪 算是 今年 目前为止 最 值得 商业片 不过 这个 结尾 真让人 矛盾 形式 上 悲剧 结尾 搞 合家欢 不落窠臼 价值 上 牺牲 小 成就 大 依旧 俗套 像 最近 很火 “ 二舅 ” 故事 我们 赞叹 独孤 月 “ 二舅 ” 作为 个体 善良 选择 但身 集体 独孤 月 “ 二舅 ” 是否 选 呢 有人 说 “ 伟大 喜剧 内核 总是 悲剧 ” 《 独行 月球 》 显然 算不上 伟大 喜剧 其 内核 无疑 悲剧 这个 悲剧 从 银幕 内 延伸 银幕 外 开心 麻花 电影 可以 分为 《 独行 月球 》 前 《 独行 月球 》 后 在此之前 开心 麻花 电影 给 屌丝 捏 脚 而 《 独行 月球 》 能 看到 他们 放弃 捏 脚 决心 能 看到 已经 捏成 肌肉 记忆 动作 有点 拧 巴 卡 逃逸速度 不上不下 它 依旧 22 年 暑期 档独 一份 全片 唯一 笑点 : 你 不是 个人 含腾量 百分百 果然 靠 谱 《 独行 月球 》 《 夏洛特 烦恼 》 后 沈马 组合 再度 合体 首 部长 片 《 独行 月球 》 一部 能 满足 喜欢 开心 麻花 电影 观众 所有 期待 作品 除了 喜剧 呈现 这部 影片 对待 科幻 认真 超出 预期 可以 说 另辟蹊径 从 喜剧 上 给 国产 科幻 大门 又 撬开 一条 缝 心里 个 4 星 商业片 看到 一堆 审视 者 嘴脸 打 恶评 决定 给 5 星 拉高 一下 你 对 不同 类型 影片 应该 使用 不同 评价 体系 比如 去 大排档 吃饭 那 激愤 吐槽 它 用餐 环境 很 好笑 理解 什么 好 骂 纯纯 开心 两个 小时 一个 喜剧片 干嘛 要求 那么 多 深度 艺术 造诣 沈马 让 开心 这么 简单 j 喜剧 内核 悲剧 . 这 拍 给 3 年 疫情 重压 下 重拾 希望 人们 呃 真的 很 国产 前面 单恋 那里 真的 很 让 人 不适 且 沈腾 真的 肥丑且 油 狂切 近景 😥 强行 上 价值 牺牲 蛮 让 人 无语 安抚 公 袋鼠 措施 装成母 袋鼠 太典 bug 太多 动物 分辨 同类 应该 靠 气味 吗 后面 手电筒 那里 真的 很 尴尬 反正 陪 别人 朋友 开心 加 一颗 星 结尾 拉 胯 喜剧片 认真 搞笑 好 不要 搞 刻意 煽情 更 不要 搞 啥 主题 升华 前面 多 搞笑 后面 尴尬 疯 为什么 6.9 知道 这个 电影 应该 不是 评价 会 两级 但是 这 心里 最 浪漫 沈马 电影 受不了 一些 宇宙 浪漫 你 变成 行星 带 保护 她 好 喜欢 好 喜欢 好 喜欢 片子 烂 可怕 观众 没有 识别 能力 才 可怕 所有人 地球 点灯 只 为了 告诉 一个 孤独 人 你 不是 一个 人 可 太 浪漫 什么 脑瘫 电影 一个 小时 开始 让 人犯 恶心 剧情 俗笑点 尴尬 一个 字 滚 真的 太 把 观众 当 傻子 这部 片子 其实 很难 定位 想 来看 喜剧 观众 觉得 煽情 太 多 想 来看 科幻 观众 又 觉得 闹腾 、 肤浅 高端 观影 群体 为 片中 三俗 笑 点 皱眉 普罗 大众 又 觉得 跟 开心 麻花 之前 大大方方 一俗 到底 片子 相比 变得 那么 轻松 好笑 为了 满足 尽可能 多 受众 需求 结果 却是 处处 讨好 奇怪的是 下来 观感 居然 不错 反思 原因 想 是因为 没有 任何 预设 没有 抱 着 喜剧 或是 科幻 预期 去 它 以 “ 空 ” 状态 去 接受 电影 一切 设定 不会 因为 与 预期 不符 而 失望 作为 无厘头 喜剧 它 不算 太 低俗 影院 的确 笑声 不断 ; 作为 科幻片 它 像 某 “ 硬核 科幻 ” 那样 有太多 逻辑 漏洞 ; 作为 剧情片 煽情 部分 虽多 大都 用 笑 点 消解 总体 来说 可以 算是 一部 3.5 星 合格 商业片 多 出来 半星 打 给 疫情 之下 岌岌可危 电影 行业 只有 6.9 豆瓣 真的 不能 用 果然 烂片 侮辱 国人 智商 0 分 整个 片子 浪费 这么 多 时间 3d 袋鼠 上 无趣 月球 有半 毛钱 关系 袋鼠 求偶 那段 下三滥 且 低俗 后排 两个 观众 笑 得 五迷三道 越 生气 无聊 以 羞辱 女性 、 性来 做 引子 浪费 人生 两 小时 推荐 但凡 看过 知道 豆瓣 分 刷上来 一 、 拿 不下 科幻 不要 硬 拍 没 这个 知识 储备 不要 硬 拍 没有 对 科学 敬畏 严肃 对待 态度 不要 硬 把 喜剧 科幻 做 融合 ; 二 、 说 说 沈腾 知道 他 自己 要 这么 演 导演 或是 别人 要求 怎么 演啥 像 烧烤 摊吃串 普通 中年 大叔 这是 维修 宇宙飞船 工程师 怎么 至少 研究生 毕业 发过 n 篇 高质量 论文 精英 人设 一天天 想着 一个 女人 然后 那 念叨 那么 严肃 场合 你 心思 根本 学术 上 一天天 伤春悲秋 不干 实事 你 能 去 维修 飞船 这 未免 对 当下 奋斗 艰辛 挣扎 内卷 考不上 考生 最大 侮辱 三 、 还有 价值观 输出 烧烤 摊吃串 普通 路 人 价值观 说 刚子 要 找 个 母 袋鼠 生一窝 小袋鼠 … … 你们 相识 一场 生离死别 你 说 这个 大家 成年人 鼠 受过 多元 价值观 教育 不能 谈点 鼠生 意义 鼠生 该 做 事 梦想 谈 要生 袋鼠 今年 看过 最好 笑 、 最好 哭 、 最 感动 电影 尤其 最后 彩蛋 我愿 化作 星环 守护 你 身旁 宇宙 这么 大 相信 平行 世界 里 独孤 月 马蓝 星 一定 会 再 相见 骑着 袋鼠 雪橇 月球 滑行 那 一段 浪漫 无以复加 没想到 国产电影 能 把 飞 向太空 傲游 宇宙 拍 那么 浪漫 那么 让 人 神往 爆哭 电影 配乐 太赞 啦 问 腾格尔 “ 黄河 水干 ” 唱响 时不赞 么 葫芦丝 奏响 “ 月光 下 凤尾竹 ” 烂漫 么 “ 月亮代表 心 ” 应景 么 最后 他 以身 赴死 李玟 “ 你 留下 爱 ” 感人 么 袋鼠 拉车 奔于 广袤 月 表 纵身 一跃时 浪漫 么 算是 这 两年 开心 麻花 最佳 沈腾 叔叔 孤独 又 浪漫 喜剧 表演 值得 一个 影帝 严肃 部分 “ 荒月 余生 ” 韵味 当然 整体 格调 偏向 喜剧 全世界 拍 太空 戏 把 这 出戏 拍出 “ 月球 我家 一人 不怕 ” 幽默 范儿 可能 真是 独此一家 整体 特效 做 得 不错 而且 沈腾 这次 表演 比较 加 分 独角戏 演 得 一点 虚 以及 他 队友 金刚 鼠 某种程度 上成 主导 全片 关键 将 最 “ 绝望 ” 设定 套 上 最 诙谐 过程 再 升华 成 令人 唏嘘 结尾 … … 比 彗星 撞 地球 《 不要 抬头 》 更 温柔 却 似乎 比 以往 开心 麻花 更 “ 狠心 ” 这破 剧情 破 台词 让 觉得 电影院 里 一群 熊 孩子 无所谓 🫤 说 好看 人 认真 吗 我妈 睡着 编剧 是不是 男 🫠 这 台词 味 太 浓 还有 腾哥 舔 抱 枕 那块 真 把 恶心 … … 太 猥琐 这样 好好 拍个 电影 不行 吗 现在 这个 大 环境 下 追求 这样 好看 好笑 梗 有点 不摆烂 不作 妖 很 好 元气 满满的 一天 得 忍不住 玩 手机 太空 拉 雪橇 那段 很 惊艳 整体 远超 期待 笑点 套路 且 重复 把 人物 情绪 捧 高下 一幕 再 摔下去 笑 点 一部 电影 居然 用 三四次 沈腾 摔 进洞 机器 狗 摔 进洞 爬 上 梯子 梯子 倒 李成儒 摔 下 椅子 一个 模式 … … 当然 这个 缺点 能 忍 毕竟 贡献 一些 笑点 最后 让 人 如坐针毡 几欲 离场 煽情 片段 地球 亮灯 、 手推 🚀 离大谱 感情 戏 又臭又长 尴尬 一批 这个 片子 评价 两极分化 朋友圈 人大 赞 再 去 趣味 偏好 差异 正常 审美 确实 高低 技法 表达 不足 客观存在 如果 这部 片子 被 捧 那么 高 对 好 电影 公平 劣币 驱逐 良币 这个 电影 应该 低于 7.5 分 前半部 分 笑 点 真的 很尬 背后 意淫 马兰 星 人形 抱 枕 番茄酱 让 闭上 双眼 大刚 第一次 出场 时候 用 阴影 暗示 描摹 女性 让 恶心 全程 永远 吊丝 男逆袭 女 无论 多牛 观看 者 只有 男 拯救 世界 然后 赢得 女人 全程 没看 懂 为什么 马兰 星要 爱 上 他 … 没 必要 … 大爱 无疆 式 烂 俗 梗 结局 仿佛 工厂 批量生产 套路 电影 不仅如此 这次 居然 连笑点 几乎 没有 比 开心 麻花 平均水平 更差 如果 一个 人 这 电影 后 一半 没法 过于 煽情 大国 情怀 让 人 感觉 恶心 只 看前 一半 稍微 有点 卖萌 搞笑 能 特别 适合 带 孩子 去 爱国主义 教育 宇航员 太空 搞笑 动物 这样 电影 适可而止 少 拍点 两颗 星纯 给 特效 无法 接受 观看 死亡 直播 而 感动 电影 配乐 太赞 啦 问 腾格尔 “ 黄河 水干 ” 唱响 时不赞 么 葫芦丝 奏响 “ 月光 下 凤尾竹 ” 烂漫 么 “ 月亮代表 心 ” 应景 么 最后 他 以身 赴死 李玟 “ 你 留下 爱 ” 感人 么 袋鼠 拉车 奔于 广袤 月 表 纵身 一跃时 浪漫 么 结尾 拉 胯 喜剧片 认真 搞笑 好 不要 搞 刻意 煽情 更 不要 搞 啥 主题 升华 前面 多 搞笑 后面 尴尬 事情 这样 男生 约 电影 完 他 说 很 好看 吃饭 时 说 西虹市 首富 很 好看 随后 暗示着 表白 本渣 女想 想 决定 不渣 这位 哥们 这样 好好 拍个 电影 不行 吗 现在 这个 大 环境 下 追求 这样 好看 好笑 梗 有点 不摆烂 不作 妖 很 好 元气 满满的 一天 说 科幻 许多 地方 很 严谨 比如 全人类 拯救 沈腾用 地球 上 一堆 手电筒 探照灯 能 组出 字 来 还有 对月盾 计划 解释 本质 上 语焉不详 以及 袋鼠 这个 角色 设置 实际上 相当 反 科幻 说 喜剧 并 没有 那么 喜剧 后半段 基本上 主旋律 叙事 马丽该 魅力 完全 没 展现 出来 沈腾 表演 这次 说 最好 实际上 化妆 造型 功不可没 情绪 浓度 创造性 设计 与 文本 逻辑 依旧 很差 还有 一个 减 分项 就是 Country Road 翻唱 真 不好 听 PS : 再也 不想 看到 对不上 口型 国产片 这个 电影 应该 低于 7.5 分 恶心 价值观 更 恶心 性别 意识 没完没了 制造 困难 煽情 冠冕堂皇 地 牺牲 个体 全球 消费 二舅 好久没 电影院 看过 这么 让 人 如芒刺背 如坐针毡 如鲠在喉 电影 科幻 扯淡 陨石 砸 月球 特效 敢不敢 再假 一点 陨石 带里开 碰碰车 扯 什么 淡 呢 陨石 砸 地球 活 好好 东施效颦 拙劣 不堪 袋鼠 什么 叙事 核弹 一 按 炸 好意思 致敬 致敬 什么 要脸 吗 辣 眼睛 恶心 说 资本 硬塞 屎 脏嘴 大陆 所谓 科幻 这是 农业 國 暴发户 小民 对于 工业革命 最前沿 信息 想象 艺术 加工 罢了 根本 不是 什么 科幻 没有 普及 没有 想象 没有 未来 只有 恶心 没有 专业 研究 只有 臆想 袋鼠 没有 宇宙 辽阔 只有 知识 贫瘠 科幻 别 扯淡 喜剧 烂 梗 爱情 呸 ~ 精神 强奸 * 从 袋鼠 出来 那里 看不懂 觉 不错 不至于 这么 低 分 7.2 或 7.3 分 差不多 有些 人 真的 太 苛刻 国产电影 什么 水平 大家 心里 没点 X 数 吗 尤其 这 两年 疫情 各 方面 影响 拍摄 处处 受限制 科幻片 略带 点 轻喜剧 能 做到 这样 算是 用心 就算 你 鼓励 别 打压 好 吗 至少 出 进步 虽 不值 满分 打 一星 那些 伪 清醒 、 假正经 你们 快 省省 这么 下去 你 沈 姥爷 可真 躺平 去 玩 综艺 烂 梗 那里 $ 挣得 舒服 么 男 凝视 角 令人 十分 不适 … … 即使 它 诸多 完美 仍然 愿意 给 它 亮 起 五颗星 电影 一种 即时 情绪 体验 这 两个 小时 里 过 充分 投入 欢乐 震撼 感动 这 就是 最好 事 腾妹 个 好 演员 这 麻花 真正 应该 做 戏 极致 浪漫 极致 人文 关怀 极致 小人物 赞歌 期待 腾妹 真正 回归 演员 & 导演 岗位 撒花 那么 多人 说 好看 做 心理准备 可是 真的 好好看 个人 英雄主义 + 末日 求生 太是 审美 亮灯 时候 哭 瞎 灯塔 老人 太好 哭 完完全全 一部 黑色 电影 甚至 前半段 文本 讽刺 撑起 整个 喜剧 结构 独孤 月 一个 被 组织 撤离 时 抛弃 、 遗漏 月球 人 组织 发现 他 利用 价值 抹杀 他 发声 机会 通过 配音 变成 宣传 工具 通过 喉舌 替 他 发声 改变 立意 设法 让 民众 将 他 当做 英雄 以 换取 民众 虚妄 希望 一个 普通人 被 造神 抬到 一个 属于 他 位置 他 曾经 一个 工程师 组织 需要 他 时候 他 只能 以 维修工 身份 来到 月球 上 他 先 被 剥夺 一个 普通人 想当 英雄 机会 ; 地球 需要 希望 时候 抛弃 他 组织 质疑 他 为什么 不能 表现 更 像 英雄 一点 他 又 被 剥夺 一个 普通人 能 不能不 当 英雄 权利 马蓝 星 角色 一个 明明 看到 还有 人 没 撤离 依然 按下 发射 键 指挥官 明确 对方 喜欢 自己 前提 下 依旧 运用 他人 对 自己 好感 造成 他 二次 赴死 最终 结局 rnm 退钱 可能 得益于 原著 漫画 加成 开心 麻花 电影 终于 不再 段子 排列组合 小品 汇报 演出 甚至 这部 科幻 喜剧 里 能够 看出 他们 想要 类型 上 继续 开拓 野心 更 值得 表扬 影片 价值 落 一个 令人 舒服 点 上 为此 麻花 可能 相当 冒险 地 给出 一个 那么 大团圆 结局 尽管 电影 与 新冠 无关 仍然 把 它 视作 一部 后 疫情 电影 : 极为 相似 处境 里 被遗弃 、 被 封闭 个体 所 渴望 人 与 人 之间 连接 正是 这样 一种 表达 被 短暂 地 治愈 一个 全面 倒退 回 一战 前夕 时代 认为 悲观主义 总是 看似 深刻 人们 需要 乐观 愚蠢地 乐观 怎么 会 有人 给 荒诞 喜剧 上 价值 啊 🤭 意料之中 / / / / 希望 不要 拿 低俗 梗 与 强行 煽情 摩擦 智商 沈腾 与 开心 麻花 火 将 我国 国民 审美 体现 淋漓尽致 一星 不能 太多 尬 死 就是 大学 晚会 小品 水平 对 来说 无非 一场 加长版 春晚 小品 兼 盗版 好莱坞 超级 英雄 类型 片 不像 喜剧 不像 剧情 不像 灾难 不像 科幻 笑点 松散 无 新意 反而 造就 如坐针毡 如芒刺背 如鲠在喉 灾难 盛宴 不知 坐在 轮椅 上 李诚儒 是否是 导演 另 一种 黑色 自嘲 什么 惊喜 惊喜 梦 中 袋鼠 突然 说话 袋鼠 拉着 沈腾 一路 向前 惊 喜 遗憾 这种 创意 影片 中 寥寥无几 老酒 装新瓶 各种 过时 老梗 混乱 成 一锅粥 强行 喂 下 沈腾 再 卖力 表演 无力回天 刻意 高燃 画面 让 人 血脉 偾 张 强行 牺牲 角色 让 人 痛哭流涕 美轮美奂 特效 让 人 眼前一亮 这 一切都在 掩盖 苍白 空洞 剧情 与 让 人 生厌 英雄主义 无耻 至极 恭喜 你 漫威 中道 崩 殂 而 你 就是 新 中国式 漫威 如果 沈腾 拍 完 《 夏洛特 烦恼 》 驾鹤 西 去 那 他 作为 艺术大师 必定 千古 流芳 另 : 马丽 演技 烂 得 一批 可以 跌下 神坛 刚子 美团 派 去 吗 4 星 电影 多一星 因为 觉得 6 点 几分 太低 这 电影 视觉效果 简直 惊艳 宇宙 星空 、 特效 好美 答应 一定 要 去 电影院 感受 一把 	 	 “ 你 不是 人 ” 这是 感觉 唯一 好笑 地方 商业化 太 浓厚 有点 《 楚门 世界 》 最后 非得 来个 拯救 地球 大 主题 沈腾 没人 搭戏 好 尴尬 马丽 全程 冷着 脸 这 起码 一部 九分 电影 啊 科幻 题材 喜剧 啊 谁 给 打 这么 低 分 一流 特效 演技 月球 上 袋鼠 雪橇 很酷 其余 感觉 太行 一是 实在 跟 《 火星 救援 》 太像 二是 煽情 部分 毫无 build up 感觉 很 尴尬 我挠 下 额头 旁边 小朋友 惊呼 道 : 不是 这 你 哭 就是 一出 科幻 逻辑 非常 严谨 闹剧 几乎 沈腾 一个 人 solo 秀 剧情 十分 扁平 可 预料 发展 方向 可 猜 喜忧参半 华语 喜剧电影 太 喜欢 笑 中带 泪来 烘焙 文本 一 开始 估计 以 悲剧 构思 下笔 喜剧 桥段 后续 添砖加瓦 导致 笑料 扎堆 程式化 明显 所以 往往 前后 割裂 感 严重 给 人 一种 “ 又 要 煽情 ( 升华 ) ” 白眼 嫌弃 这样 剧本 只有 自带 幽默感 演员 来 诠释 增加 说服力 否则 就是 一盘 烂泥 散沙 月球 生活 与 清障 π + ( 新冠 ) 以 颓废 摆烂 光芒万丈 差异性 塑造 特效 虚头 巴脑 袋鼠 令人 眼前一亮 开心 麻花 这回 算是 下足 功夫 背景 冲出 地球 喜剧 边界 拓展 原地 招手 一切 像 二手市场 淘来'''

from wordcloud import WordCloud
import cv2

wc = WordCloud(
font_path= 'zt/msyhl.ttc', # 字体路径
width= 500, # 默认400
height= 300, # 默认 200
mask= cv2.imread('ppp/dontstop2.png', 1), # 文字覆盖图
background_color='#ffff99', # 背景颜色
contour_color = 'red', # 边框颜色
contour_width = 3, # 边框宽度 默认0
min_font_size = 5, # 最小字号 默认4
max_font_size = 800, # 最大字号 默认None
font_step = 1, # 字体变化步长 默认1
max_words = 50, # 最大单词数量
stopwords = {'电影','科幻'}, # 要忽略的单词 set|None
)

wc.generate(ss)
wc.to_file('xxxxxx.png')

团长素材

xxxxxx