首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
13,379 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
10,990 阅读
3
gradle-5.4.1-all.zip下载
8,882 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
7,836 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
6,875 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
624
篇文章
累计收到
617
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
142
篇与
的结果
2020-06-23
Centos后台挂机Python脚本
需要用到setsid指令用法:#setsid python xxx.py然后可以输入查看所有进程#ps -aux然后可以根据PID结束进程:# kill -pid 注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。
2020年06月23日
783 阅读
0 评论
0 点赞
2020-06-22
使用Python遍历修改Excel单元格的值
这次的任务要求是这样的为了这位老哥的学习,于是就用Python帮了一把,一共300多题,要是一个个来还不得累死。于是在线学习了一下Python操作Excel,需要用到一个模块openpyxl源文件图:成品图:代码:# -*- coding: utf-8 -*- """ ------------------------------------------------- @ Author :Lan @ Blog :www.lanol.cn @ Date : 2020/6/21 @ Description:I'm in charge of my Code ------------------------------------------------- """ import re import openpyxl class QueClear: def __init__(self, file): self.file = file self.wb = openpyxl.load_workbook(self.file) self.sheet = self.wb.sheetnames[0] self.ws = self.wb[self.sheet] # 获取总行数 def getRowsClosNums(self): rows = self.ws.max_row columns = self.ws.max_column return rows, columns # 获取指定单元格的值 def getCellValue(self, row, column): cellvalue = self.ws.cell(row=row, column=column).value return cellvalue # 修改指定单元格值 def setCelValue(self, a, b, cellvalue): self.ws.cell(row=a, column=b, value=cellvalue) if __name__ == '__main__': # 实例化对象,打开文件 mytest = QueClear('errors.xlsx') # 获取总行数 rows = mytest.getRowsClosNums() # 遍历操作 for row in range(2, rows[0]): # 获取正确选项 Answer = mytest.getCellValue(row, 4) # 获取所有选项 Selects = mytest.getCellValue(row, 5) # 在答案选项中匹配正确答案 result = Answer + ':' + re.findall(f'[{Answer}]:(.*?);', Selects)[0] # 设置值 mytest.setCelValue(row, 4, result) # 输出替换的结果,以表示程序没卡死 print(result) # 保存操作结果 mytest.wb.save(mytest.file)
2020年06月22日
1,879 阅读
0 评论
0 点赞
2020-06-21
Lan的Python爬虫虚拟环境模块清单
刚刚在给服务器装python环境,然后打包了一份自己Python爬虫环境下的requirements清单。分享出来顺便备份一下。模块似乎挺多的,很多模块我也不知道啥时候装的,不过问题不大,爬虫这块应该全了至于怎么使用可以看我的这篇文章:自动生成和安装requirements.txt依赖requirements.txt大小:2kb已经过安全软件检测无毒,请您放心下载。
2020年06月21日
607 阅读
0 评论
0 点赞
2020-06-21
文字转语音保存为Mp3格式,接口:百度翻译
调用的是百度翻译的接口,成品会生成到软件目录,文件名为文字的前10个字。# -*- coding: utf-8 -*- """ ------------------------------------------------- @ Author :Lan @ Blog :www.lanol.cn @ Date : 2020/6/21 @ Description:I'm in charge of my Code ------------------------------------------------- """ import requests word = input("请输入要转换的文字:") speed = input("请输入语音的速度:") url = f'https://fanyi.baidu.com/gettts?lan=zh&text={word}&spd={speed}&source=web' result = requests.get(url).content with open(f'{word[:10]}.mp3', 'wb') as f: f.write(result) input(f"【{word}】语音成品已生成在软件根目录")
2020年06月21日
973 阅读
0 评论
0 点赞
2020-06-20
Python的基本骚操作(长期更新)
最近在网上看到一些Python的一些基本但是非常实用的操作。元素相关多赋值:a = b = c = 'www.lanol.cn' print('a的值:'+a) print('b的值:'+b) print('c的值:'+c)交换元素的值:a = "我是a的值" b = "我是b的值" a,b = b,a print('a:'+a) print('b:'+b)元素自操作:a = 5 a +=1 #自加1 a -=1 #自减1 a /=2 #自除2 a *=2 #自乘2 a **=2 #自己的2次方 print(a)使用三元操作符赋值:三元操作符是 if-else 语句也就是条件操作符的一个快捷方式:[表达式为真的返回值] if [表达式] else [表达式为假的返回值]这里给出几个你可以用来使代码紧凑简洁的例子。下面的语句是说“如果 y 是 9,给 x 赋值 10,不然赋值为 20”。如果需要的话我们也可以延长这条操作链。x = 10 if (y == 9) else 20同样地,我们可以对类做这种操作:x = (classA if y == 1 else classB)(param1, param2)在上面的例子里 classA 与 classB 是两个类,其中一个类的构造函数会被调用.下面是另一个多个条件表达式链接起来用以计算最小值的例子:In [10]: def small(a,b,c): ...: return a if a<=b and a<=c else ( b if b<=a and b<=c else c) ...: In [11]: small(1,0,1) Out[11]: 0 In [12]: small(1,2,3) Out[12]: 1我们甚至可以在列表推导中使用三元运算符: In [14]: [ m**2 if m > 10 else m**4 for m in range(20) ] Out[14]: [0,1,16,81,256,625,1296,2401,4096,6561,10000,121,144,169,196,225,256,289,324,61]列表相关判断列表是否为空:def test1(): arr1 = [1, 2, 3, 4, 5] arr2 = [] # 不推荐 if len(arr1)!=0: print("arr1 is not empty-len!") if len(arr2)!=0: print("arr2 is not empty-len!") # 推荐 if arr1: print("arr1 is not empty!") if arr2: print("arr2 is not empty!")遍历列表,获取索引下标:def test3(): l1 = [11, 22, 30, 41, 51] # 不推荐 for i in xrange(0, 5): print("%s->%s" %(i, l1[i])) # 推荐 for i, v in enumerate(l1): print("%s->%s" % (i, v))字典列表生成式:def test5(): dict1 = {1: "val1", 2: "val2", 3: "val3", 5: "val5"} dict2 = {k*2: v for k, v in dict1.items()} print(dict2)其他相关
2020年06月20日
1,351 阅读
0 评论
0 点赞
2020-06-19
易班易瞄瞄指定话题用户动态自动爬取并保存
因为最近有需要统计易瞄瞄指定话题下的用户发表的动态内容,还需要统计点赞数,发表时间等信息,因此随手写了一个小脚本,这个呢就不写教程了,直接放代码和效果图,需要自己手动获取易班的login_token,抓客户端包即可,或者浏览器F12,以前也写过易班登录JS。修改topicid既可切换话题import re import time import requests print('正在获取秘钥!') info = input("请输入Token") url = f'https://ymm.yiban.cn/news/list/news?loginToken={info}&page=1&size=100&topicId=2' res = requests.get(url=url).json() if res['message'] == "操作成功" and info['version'] == "暂无": data = res['data']['list'] print('正在下载数据!') with open('易喵喵点赞数量.csv', 'w', encoding='utf8') as f: f.write('用户id,学号,用户名,文字内容,11点,赞数,发布时间 ') print("正在写入数据!") for i in data: title = i['title'].replace(' ', '').replace(',', ',') likenum = i['likeNum'] time_local = time.localtime(int(i['createTime'])) date = time.strftime("%Y-%m-%d %H:%M:%S", time_local) riqi = time.strftime('%H', time_local) if int(riqi) > 11: riqi = "11点前" else: riqi = "11点后" xuehao = re.findall('([2][0][1][1-9]d*)', title) if xuehao: xuehao = xuehao[0] userid = i['origin']['User_id'] usernick = i['origin']['usernick'].replace(',', ',') f.write(f'{userid},{xuehao},{usernick},{title},{riqi},{likenum},{date} ') print(f'{userid},{xuehao},{usernick},{title},{riqi},{likenum},{date}') print("作者:Lan,www.lanol.cn") input("结果已生成在软件目录下") else: input("获取失败,请联系Lan")
2020年06月19日
2,614 阅读
0 评论
0 点赞
2020-06-17
抖音字体反爬,爬虫字体反爬策略——每周一个爬虫小教程系列
在B站上看到一个关于抖音字体反爬的视频,看完之后,精神抖擞,不禁感觉,我又行了,于是在模拟器上下载了一个抖音,打开了我尘封已久的抖音号。可以看见显示的数字是正常的,但是查看源码就是错误的。既然是字体反爬,那就得去找下字体,双击下载然后用在线字体编辑器打开看一下。我们看到这个数字1的Unicode是$E602,是不是和源代码中的差不多呢。在教程里面说到对于字体反爬,需要用模块将字体转为xml,相当于字典,然后就这样替换吧。将字体文件转换为xml文件需要用到的模块是fonttoole,这里需要自行安装一下。from fontTools.ttLib import TTFont font = TTFont('iconfont_9eb9a50.woff') font.saveXML('DouYinFont.xml')转换完成之后的XML文件。我们来搜索一下我们之前的数字1,他的Unicode就是E602,然后可以发现这里和之前在线字体网站上的结果是一样的然后我们来将XML文件提取出来,并输出一下(XML提取我目前也不会,所以是跟着教程写的,后期再去了解一下吧)a = font['cmap'].getBestCmap() print(a)这个时候发现似乎这些都变成了数字,而不是之前的$E602这样子的,是因为进制转换了,由原始的16进制,转成了10进制。然后我们需要将这个字典中的十进制数字转成这种16进制,然后还得把0x替换为&#x然后用代码实现就是酱紫的,大概就是提取出cmap这个节点的信息,然后遍历这个字典,然后重新转换成16进制然后变成字符串,在替换一下。a = font['cmap'].getBestCmap() b = {} for key, value in a.items(): b[str(hex(key)).replace('0x', '&#x')] = value print(b)然后就是用代码将num_这些转换为数字,参照这张字体在线编辑器的即可c = { 'num_': '1', 'num_1': '0', 'num_2': '3', 'num_3': '2', 'num_4': '4', 'num_5': '5', 'num_6': '6', 'num_7': '9', 'num_8': '7', 'num_9': '8', }然后改进一下之前的代码:for key, value in a.items(): b[str(hex(key)).replace('0x', '&#x')] = c[value] print(b)然后为了和网页源码里面一样()所以还需要做一些修改,在后面加一个分号和空格。for key, value in a.items(): b[str(hex(key)).replace('0x', '&#x')+'; '] = c[value] print(b)然后就是请求源码,然后替换了。headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', } url = 'https://www.iesdouyin.com/share/user/91723415754' res = requests.get(url=url, headers=headers).text for key, value in b.items(): if key in res: res = res.replace(key, value+' ') print(res)
2020年06月17日
1,325 阅读
2 评论
0 点赞
1
...
11
12
13
...
21