星光☆学而思专用库
Project description
xingyunlib
[toc]
开发者:严子昱|崔轩宇
v1.2.20201004
#v1.2.xx以后全是正式版#
#hack-20201004:修复xesuser故障
版权所有,侵权必究
内置函数 导入方式:
from xingyunlib import *
加密函数s
md=md5("111")#作用:用MD5加密"111",返回一个字符串
s1=sha1("111")#作用:用sha1加密"111",返回一个字符串
s256=sha256("111")#作用:用sha1加密"111",返回一个字符串
颜色类
color=colorX(颜色,传进去的颜色类型)#类型支持"rgb","hsv","hex"
#示例:
color=colorX((100,100,100),"rgb")
color.color
返回颜色
z=color.color
color_to(to_color,change=False)
返回一个要转换的颜色
to_color:转换的颜色,类型支持"rgb","hsv","hex"
change:是否更改原来的颜色
color=colorX((255,255,255),"rgb")#实例化rgb
color.color_to("hex",True)#更改进制为16进制
print(color.color)#打印出color.color
xes更改
最新版本的xingyunlib增加了xeslib的内容
导入方式:
from xingyunlib.xes import xeslib里面的库名
更改:
把xeslib里面所有的print都去了
修改AIspeak.speak函数
from xingyunlib.xes import AIspeak
xes.AIspeak.speak("hello python!","file.mp3")
"""
本程序作用:
将hello python!
保存到file.mp3音频文件里面,并且不播放
"""
xes.AIspeak.speak("hello python!")
"""
本程序作用:
播放hello python!这段音频
"""
xesapp(更新!)
开发者:严子昱|崔轩语
导入方式:
from xingyunlib.xesapp import*
xesapp(url)
<xesapp>=xesapp(url)
构建一个运行对象 url为学而思里面的py作品网址
接下来讲这个类的方法:
get_hot()
返回作品的热度
print(xesapp.get_hot())
get_cover()
返回作品封面的url
print(xesapp.get_cover())
load_cover(filename)
下载作品封面到filename
xesapp.load_cover("")
get_view()
返回作品的观看人数
print(xesapp.get_view())
get_hot()
返回作品的热度
print(xesapp.get_hot())
get_like()
返回作品的点赞数
print(xesapp.get_like())
get_unlike()
返回作品的点踩数
print(xesapp.get_unlike())
load_file(cache = "")
默认下载作品源文件到工作目录 如果cache不为空择下载到这个文件夹
xesapp.load_file()
is_like()
判断在程序运行这个作品有没有人点赞 返回一个bool值 True:点赞了 False:点踩了 None:没有点赞也没有点踩
if xesapp.is_like == True:
print("点赞了")
elif xesapp.is_like == False:
print("点踩了")
else:
print("什么都没点")
run_app()
运行这个作品
exec(xesapp.run_app())
get_published()
获取作品第一次保存时间
print(xesapp.get_published())
get_modified()
获取作品最后一次更新时间
print(xesapp.get_modified())
is_hidden_code()
获取作品是否隐藏代码
if xesapp.is_hidden_code():
print("作品的代码隐藏了")
else:
print("作品的代码没有隐藏")
get_description()
获取作品的说明
print(xesapp.get_description())
get_comments()
获取作品一共有多少人评论
print(xesapp.get_comments())
is_comments()
获取从这个作品初始化到现在是否有人评论
if xesapp.is_comments():
print("评论了")
else:
print("没有评论")
cmt(url)
这个是一个获取评论的api
dta_dic
#获取一个包含所有评论的列表
a=cmt("http://code.xueersi.com/home/project/detail?lang=code&pid=9785566&version=offline&form=python&langType=python")
print(a.dta_dic)
#输出
"""
(略)
"""
fmt()
#返回一个字符串(评论的字符格式化)
a=cmt("http://code.xueersi.com/home/project/detail?lang=code&pid=9785566&version=offline&form=python&langType=python")
print(a.fmt())
#部分输出
"""
[2020-10-17 20:52:11]
一维回复严子昱:快点=-=不取关就pen你
[2020-10-17 20:51:31]
一维回复严子昱:有时关注我这个人,并不是太好的选择
取关我吧,有事请加qq:3456198711
微信:huiyu431249891
[2020-10-17 18:34:35]
俊翔回复严子昱:作者是喜欢互关吗?居然关注我这样的蚂蚁,太感动了
[2020-10-15 21:56:11]
陈奕翰回复严子昱:考虑合作嘛
[2020-10-10 19:29:26]
茜幻回复严子昱:作者在吗
[2020-10-10 19:10:42]
蒋狄璁回复严子昱:互关
.......(略)
"""
sorted(by=“likes”,reverse=True)
#设置排序
a=cmt("http://code.xueersi.com/home/project/detail?lang=code&pid=9785566&version=offline&form=python&langType=python")
a.sorted(by="likes",reverse=True)#reverse为 从高到低排列
print(a.fmt())
"""
[2020-10-15 21:56:11]
陈奕翰回复严子昱:考虑合作嘛
[2020-10-17 20:52:11]
一维回复严子昱:快点=-=不取关就pen你
[2020-10-17 18:34:35]
俊翔回复严子昱:作者是喜欢互关吗?居然关注我这样的蚂蚁,太感动了
[2020-10-01 20:51:57]
王玎珰回复严子昱:啊这
...(略)
"""
xesuser(已修复!!!)
注意!!
千万一定不要超高频率请求,否则会报错!!!
作者:严子昱
导入方式:
from xingyunlib.xesuser import*
get_user_id("作品网址")
user_id=get_user_id("作品网址")
#本作品最重要的函数,这个获取作品网址的作者的user_id
get__fans(user_id)
fans_info=get_fans(user_id)
#这个user_id从上面拿
#获取这个人粉丝的大部分信息,返回一个列表
#每项是一个字典:
fans_info[x]["realname"]#:获取第x项他的名字
fans_info[x]["avatar_path"]#:获取第x项他头像的url
fans_info[x]["fans"]#:获取第x项他的粉丝数量
fans_info[x]["follows"]#:获取第x项他的关注数量
get_follows(user_id)
follows_info=get_follows(user_id)
#大体和get_fans一样
#获取这个人粉丝的大部分信息,返回一个列表
#每项是一个字典:
follows_info[x]["realname"]#:获取第x项他的名字
follows_info[x]["avatar_path"]#:获取第x项他头像的url
follows_info[x]["fans"]#:获取第x项他的粉丝数量
follows_info[x]["follows"]#:获取第x项他的关注数量
get_info(user_id)
user_info=get_info(user_id)
#获取这个人的大部分信息,返回一个字典
user_info["name"]#:返回这个人的名字
user_info["slogan"]#:返回这个人的口号(名字下面那段)
user_info["fans"]#:返回这个人的粉丝数量
user_info["follows"]#:返回这个人的关注数量
user_info["icon"]#:返回这个人的头像url
user(user_id)
user=user(user_id)#这个其实大部分都是前面的内容,不过前面的加载比较慢,这个适用需要数据比较多的程序
user.works#:获取发布的作品总数
#user.work_info#:获取发布的作品的信息,返回一个列表,列表的每项都是字典
user.work_num#:获取一共有多少个作品(曾经发过的也算)
user.fans#:获取粉丝总数
#user.fans_info#:获取粉丝信息(和get_fans返回一样的信息)
user.follows#:获取关注总数
#user.follows_info#:获取关注信息(和get_follows返回一样的信息)
user.like_num#:获取点赞总数
user.view_num#:获取浏览总数
user.favorites#:获取收藏总数
pygame_extend
导入方式:
from xingyunlib.pygame_extend import *
(这样顺便导入pygame和sys欸嘿嘿)
tkinter_extend
导入方式:
from xingyunlib.tkinter_extend import*
作者:严子昱
inpu_box
#创建(就当button控件用):
a=inpu_box(tk,函数名,**按钮的配置)
#打包:
a.pack(**pack的配置)
#配置:
a.config_entry(**文本框的配置)
a.config_button(**按钮的配置)
#其实你基本可以当做Entry来用,除了初始化语句还有配置以外基本都是一样的
#(剩下的教程还没写完)
print_format
开发者:严子昱
导入方式:
from xingyunlib.print_format import*
print()
print(*str,t=0,sepr=" ",end="\n")
我们来逐个讲解他们的用法
首先来看t参数:
t=每个字停留的时间(默认为不停留)
比如说,要每个字停留1秒,输出"nice"的代码如下:
print("nice",t=1)
然后我们来看end参数 这个end参数其实和原来print的end参数是同样的作用 默认是"\n"(换行符)
最后我们看sepr参数,这个参数也是和原来print的sepr是同样的作用
我们来看一个例子:
print("ni","e",sepr="c")
最后输出的就是“nice”
我们来看大家这个很关心的变色简洁方式 我们在变色具体支持这些颜色: 红、白、绿、蓝、黄、青、紫 用法如下(注意是两个斜杠): '\'+颜色(字的颜色变化) '\l'+颜色(字的颜色变化,亮色) '\b'+颜色(字的背景变化) '\bl'+颜色(字的背景变化,亮色) '\'(去除所有的变色效果)
clear_os()
clear_os()
清除屏幕上的所有文字
dsfAdmin
开发者|严子昱
(暂时只支持windows)
导入方式:
from xingyunlib.dsfAdmin import*
get_pakages()
作用:获取已安装每个包的版本
for x in range(len(get_pakages())):
print("库"+x[0].center(19," "),"版本"+x[1].center(10," "))
find_pakages(pakages,ver=None)
作用:获取时否安装pakage这个库,ver代表版本,默认不进行版本监测
if find_pakages("xingyunlib"):
print("你有安装xingyunlib库!")
else:
print("你没有安装xingyunlib库!")
upgrade_pakages(pakage)
作用:更新pakage这个库
upgrade_pakages(“xingyunlib”)
install_pakages(pakage)
作用:安装这个库,常和find_pakages一起用
if not find_pakages("alsolib"):
install_pakages("alsolib")
#注意这个,这个非常重要的,可以在没安装第三方库的时候自动下载库
dump_pip_list(filename)
作用:将库的list保存到这个文件里面
load_pip_list(filename)
作用:将这个文件里面的库导出到正在使用的编译器
dump_pip_list("pip_pakages")
#同目录会出现一个‘pip_pakages.pip’文件
# |把这个文件移到另一台电脑
# v
load_pip_list("pip_pakages")
#然后这个程序就会自动安装在第一台电脑上所有的第三方库了
image
开发者|严子昱
导入方式:
from xingyunlib.image import*
resize(filename,XY)
作用:将filename这个文件变成XY大的文件
resive("img1.png",(100,100))
#将img1.png变成100x100的缩略图
cloud(text,font_path,savafile=None,image=None,background_color="white",color=True)
(这个函数要安装numpy和wordcloud库)
作用:text为列表,font_path为字体文件的位置
savafile为保存的文件名,image为模板图片的名字
background_color为背景颜色 color为是否根据模板图片的颜色上色(在有模板的情况下)
import os
text="ahuidgayugwuydgatywefuwfdytafayuofdwtyfauyfatyfautfatyfatyufduyoawfgtydfeutoaftyaf".split("a")
cloud(text,"(你的字体文件)","all.png")
os.startfile("all.png")
add_text(img, text, **args)
这个**args包括以下内容
font=(”字体文件.ttf”,字号)
XY=(x坐标,y坐标)#这个坐标以图片左上角为0,0(原点)
fillColor=颜色(建议使用16进制颜色)
show_img=True#设置是否在修改完成后显示图片,默认为False
change_img="newimgname.png"#设置输出的图片文件名
add_text("原图.png","广告",font=font,XY=XY,fillColor=fillColor,show_img=show_img,change_img=change_img)
user
开发者|严子昱
导入方式:
from xingyunlib.user import *
初始化:
user_login(filename=None)
filename:之前的保存数据的文件名,如果没有保存过请不要写filename
user=user_login()
#导入之前的数据
user=user_login("<数据文件名称>")
注册:
user.registered(name,key,flag=True,filename=None)
name:注册的名字
key:密码
flag设置为True:如果已经导入数据则返回False(如果已经注册过了就不让你注册)否则返回True(注册成功)
flag设置为False:都可以注册
filename:保存数据文件的名称
type=user.registered(input("请输入你的名字:"),input("请输入你的密码:"),flag=True,filename="data")
if type==True:
print("注册成功!")
else:
print("注册失败!")
user.login(name,key)
name:注册时的名称
key:密码
返回一个bool值,为True或False
True:验证密码正确 False:验证失败
type=user.login(input("请输入你的名字:"),input("请输入你的密码:"))
if type==True:
print("注册成功!")
else:
print("注册失败!")
user.load(filename)
导入保存的数据,filename为文件名
b=user_login()
b.load("你保存的文件名")
导入方式:
from xingyunlib import mail
用法:
mail.send(to,title,txt)
mail.send("3161399620@qq.com","hello python","hello world!")
to:发送给的邮箱
title:标题
txt:发送的文本
err
导入方式
from xingyunlib import err
当你有一些程序想在特定的情况终止怎么办?
试试下面的程序
err(txt)
from xingyunlib import err
a=input("请输入1:")
if a!="1":#如果非1
err.err("你没有输入1。。。")
else:
...
#程序自然退出
http_spider
导入方式
from xingyunlib import http_spider
load_requests(str,between,line)
默认值:between=":" ; line="\n"
between:分隔符
line:换行符
这个概念有点难理解,具体看下面示例,能不能听懂由天命
from xingyunlib import http_spider
header=http_spider.load_requests("""Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.116 Safari/537.36""",": ","\n")#那段字符串是从浏览器复制出来的
print(header)
"""
----------
输出:
{'Accept': 'application/json, text/plain, */*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.116 Safari/537.36'}
"""
主要作用是自动分析从浏览器复制出来的headers
spider(*args,**kwargs)
这个函数就明显很水,完全是凑数用的,不过对于一些新手来说还是有点用的
其实就是requests的变体,增加了一个判断是否状态码是否10x,40x,50x的功能而已
from xingyunlib import http_spider
print(http_spider.spider("http://code.xueersi.com/api/compilers/6?id=6").text)
#略去输出结果
ua_list
话不多说,上代码
from xingyunlib import http_spider
print(http_spider.ua_list)
"""
输出:
['Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)', 'Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)', 'Mozilla/5.0 (compatible; rv:1.9.1) Gecko/20090702 Firefox/3.5', 'Mozilla/5.0 (compatible; rv:1.9.2) Gecko/20100101 Firefox/3.6', 'Mozilla/5.0 (compatible; rv:2.0) Gecko/20110101 Firefox/4.0', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2', 'Mozilla/5.0 (compatible) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.682.0 Safari/534.21', 'Opera/9.80 (compatible; U) Presto/2.7.39 Version/11.00', 'Mozilla/5.0 (compatible; U) AppleWebKit/533.1 (KHTML, like Gecko) Maxthon/3.0.8.2 Safari/533.1', 'Mozilla/5.0 (Linux; U; Android 2.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 ', 'Mozilla/5.0 (iPhone; U; CPU OS 4_2_1 like Mac OS X) AppleWebKit/532.9 (KHTML, like Gecko) Version/5.0.3 Mobile/8B5097d Safari/6531.22.7', 'Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/4.0.2 Mobile/8C148 Safari/6533.18.5', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_7) AppleWebKit/534.16+ (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4']
"""
这是一个列表,里面有很多笔者搜集的ua,(截至2020-9-19)收录了15个ua,足够你用了
get_xes_url(url)
爬取一个xes的页面
from xingyunlib import http_spider
print(http_spider.get_xes_url("http://code.xueersi.com/api/compilers/6?id=6"))
#略去输出结果
data
数据类方法
2020-10-1
作者:严子昱
导入方式:
from xingyunlib import data
Data
初始化方法:
dta=data.Data(filename,find=False)
"""
filename:文件名,若没有则创建
find:搜索模式,若没有filename则报错
"""
输入数据:
change_data(data)
dta=data.Data(filename,find=False)
#略
"""
data参数支持的数据:
list,bool,tutle,str,set,dict,int,float
"""
dta.change_data("加油!")
eval_data()
把从文件中保存的数据转换成可执行内容
"""fruit.txt内容:
["apple","orange"]
"""
dta=data.Data("fruit.txt",find=False)
dta.eval_data()
for x in dta.data:
print(f"fruit:{x}")
"""
输出结果:
fruit:apple
fruit:orange
"""
save()
保存结果到文件中
dta=data.Data("great",find=False)
dta.change_data(["hhc","hhv"])
dta.save()
"""great内容:
["hhc","hhv"]"""
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file xingyunlib-1.2.20201024.tar.gz
.
File metadata
- Download URL: xingyunlib-1.2.20201024.tar.gz
- Upload date:
- Size: 32.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbd69ff506b9680e276be53969766fe26819127cbf3e76889b1c78ec1490c24e |
|
MD5 | aa3dbf999f180918a4faaef0022e7675 |
|
BLAKE2b-256 | 426f2139ef9d13f2ec06eda44f2eeb71d72ac1f54624c52b21eaaabd7e7ac5bd |