首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
14,550 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
11,842 阅读
3
gradle-5.4.1-all.zip下载
9,819 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
8,306 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
7,123 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
624
篇文章
累计收到
632
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
144
篇与
的结果
2021-07-12
软考成绩出来了,你过了吗?软考成绩查询接口分析及Python实现
没什么用的废话很久没有写爬虫相关的文章了,因为现在大多数时间都在写Web相关的代码。今天朋友问我软考成绩咋样,我才知道成绩出来了。查了一下,成绩很理想,不出乎我的意料之外。因为:雨过天晴,糟糕的近期,总算迎来了晴天 这不是重点,今天来研究一下软考成绩查询网站。官网查成绩地址: https://query.ruankao.org.cn/score/main页面及网络请求分析验证码分析可以看见,页面中有两个查询方式,根据准考证号查询以及根据身份证号查询,以及查询都需要验证码。看到验证码,首先看下他的逻辑有没有问题,就是看能不能跳过二维码。所以我直接点击提交。 它发送了一个网络请求VerifyCaptcha,然后返回的preview是验证码错误。到这里还不能确定他的验证码是否可以跳过继续。我们输入正确的验证码后点击查询。可以看见这次的返回值为ok,并且进行了查询,返回了查询结果为空。我们看一下这个result的网络请求。请求方式:Post发送了表单数据:stage: 2021年上半年xm: 11zjhm: 11jym: 8221select_type: 1上述参数直接猜都猜得出吧。年份,姓名,证件号码,验证码,查询方式。然后我们用Python写一个请求试一下。import requests url = 'https://query.ruankao.org.cn//score/result' data = { 'stage': '2021年上半年', 'xm': 'lan', 'zjhm': '666', 'jym': '7777', 'select_type': '1', } print(requests.post(url=url, data=data).json())看来验证码不能跳过,所以有以下几种方法。保存验证码,用户输入后再提交请求。将验证码上传至第三方验证码识别平台,返回验证码后提交请求。这里为了方便采用第一种。过验证码看一下他验证码是怎么请求的。GET请求,获取验证码图片。所以新建一个长链接Session请求先请求一次验证码获取接口,将图片保存在本地,import requests import time session = requests.session() url = 'https://query.ruankao.org.cn//score/result' with open('a.png', 'wb') as f: f.write(session.get(f'https://query.ruankao.org.cn//score/captcha?{time.time() * 1000}').content)然后等用户打开验证码图片识别之后输入验证码再发送查询成绩的网络请求。data = { 'stage': '2021年上半年', 'xm': '姓名', 'zjhm': '证件号码', 'jym': input('请输入验证码'), 'select_type': '1', } print(session.post(url=url, data=data).json())查询成功,然后你就可以再结合结合放到Web啥的
2021年07月12日
674 阅读
0 评论
0 点赞
2021-06-30
Zblog迁移至Typecho,Python脚本
注意,迁移之前一定要全部备份。我在迁移评论的时候不小心把旧博客的评论表数据给清空了,还好有数据备份。文章迁移脚本此脚本需要先将分类表手动迁移,注意ID以及名称要和原来的一致# -*- coding: utf-8 -*- """ ------------------------------------------------- @ Author :Lan @ Blog :www.lanol.cn @ Date : 2021/6/29 @ Description:I'm in charge of my Code ------------------------------------------------- """ import time import pymysql HOST = "数据库HOST地址" USER = "数据库用户名" PASSWORD = "数据库密码" PORT = 数据库端口 db = pymysql.connect(HOST, USER, PASSWORD, "旧数据库名称", PORT, charset='utf8') selectSql = "select * from zbp_post where log_cateID!=0 and log_ID!=436" cursor = db.cursor() cursor.execute(selectSql) source = cursor.fetchall() db.close() db = pymysql.connect(HOST, USER, PASSWORD, "新数据库名称", PORT, charset='utf8') cursor = db.cursor() a = 1 for i in source: cid = i[0] title = i[9].replace("'", '"') slug = i[0] created = i[12] modified = i[12] text = i[11].replace('{#ZC_BLOG_HOST#}', '新的博客地址') order = 0 authorid = 1 template = None type = 'post' status = 'publish' password = '' commentsNum = i[13] allowComment = 1 allowPing = 1 allowFeed = 1 parent = 0 views = i[14] agree = 0 try: insertSql = f"INSERT INTO typecho_contents VALUES({cid},'{title}','{slug}','{created}','{modified}','{text}','{order}','{authorid}',NULL,'{type}','{status}','{password}','{commentsNum}','{allowComment}','{allowPing}','{allowFeed}','{parent}','{views}','{agree}') " cursor.execute(insertSql) insertSql = f"Insert into typecho_relationships values('{cid}','{i[1]}')" cursor.execute(insertSql) db.commit() print(f'{cid}迁移成功') except: print(f'{cid}迁移失败') db.commit() db.close()评论数据迁移脚本# -*- coding: utf-8 -*- """ ------------------------------------------------- @ Author :Lan @ Blog :www.lanol.cn @ Date : 2021/6/29 @ Description:I'm in charge of my Code ------------------------------------------------- """ import pymysql import time HOST = "数据库HOST地址" USER = "数据库用户名" PASSWORD = "数据库密码" PORT = 数据库端口 db = pymysql.connect(HOST, USER, PASSWORD, "旧数据库名称", PORT, charset='utf8') selectSql = "select * from zbp_comment" cursor = db.cursor() cursor.execute(selectSql) source = cursor.fetchall() db.close() db = pymysql.connect(HOST, USER, PASSWORD, "新数据库名称", PORT, charset='utf8') cursor = db.cursor() for i in source: cid = i[1] created = i[10] author = i[6] authorId = i[5] ownerid = i[5] mail = i[7] url = i[8] ip = i[11] agent = i[12] text = i[9] type = 'comment' status = 'approved' parent = i[4] try: insertSql = f"Insert into typecho_comments values (NULL ,'{cid}','{created}','{author}','{authorId}','{ownerid}','{mail}','{url}'" \ f",'{ip}','{agent[:100]}','{text}','{type}','{status}','{parent}')" cursor.execute(insertSql) db.commit() except: print(f'{cid}迁移失败') db.commit() db.close()
2021年06月30日
459 阅读
1 评论
1 点赞
2021-05-29
uvicorn启动fastapi使用websocket报错Unsupported upgrade request
原因:Uvicorn在新版本后[>= 0.12]有关,不会自动提供websocket实现。解决:先卸载已有版本uvicorn:pip uninstall unicorn重新安装指定版本pip install uvicorn [standard]即可正常使用。
2021年05月29日
1,046 阅读
0 评论
0 点赞
2021-05-26
阅读Django官方文档自定义用户表及验证时,发现的一个有意思的事情
文档地址:https://docs.djangoproject.com/zh-hans/3.2/topics/auth/customizing/事情是这样的,我的毕设是准备做一个基于微信公众号以及小程序的一个校园助手。此前做的一个后端是用的openid用户验证,然后用的也是自己写的一个用户表,并没有继承自带的user模型,所以吧,总感觉不安全。然后这两天一直在纠结要怎么去解决这个问题,这不今天晚上翻文档发现了我想要的一个东西。 # Create a new user. There's no need to set a password # because only the password from settings.py is checked.创建一个新的用户,不需要去设置密码,因为密码只有经过settings.py才会验证。恍然大悟,我之前一直为创建用户时,账号密码以及邮箱没有设置要怎么处理纠结。因为微信公众号他一开始只传一个openid过来,其他的则需要自行调用接口解析,或者返回页面让用户填写,但是这么一分开,像用户名和密码以及邮箱这些必填字段肯定是为空的。如果说不经过settings.py的话这个问题解决了,舒服。剩下的基本就没什么问题了。
2021年05月26日
473 阅读
0 评论
0 点赞
2021-05-25
微信公众号msgSecCheck接口总是返回{
首先遇到报错{'errcode': 47001, 'errmsg': 'data format error rid: 60ac6d57-058e8ba0-3fa910cf'}经过百度,发现是因为请求的data不是json格式,遂将data进行json.dumps后发现每次返回{'errcode': 0, 'errmsg': 'ok'}输出后发现评论内容也是转义了。所以 成功解决res = requests.post(f'https://api.weixin.qq.com/wxa/msg_sec_check?access_token={access_token}', headers={'content-type': 'application/json'}, data=json.dumps({'content': content.encode("utf-8").decode("latin1")}, ensure_ascii=False)).json()
2021年05月25日
828 阅读
1 评论
0 点赞
2021-01-30
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=N...PIP报错
Python安装模块报错WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', timeout('_ssl.c:1106: The handshake operation timed out'))': /simple/parsel/解决方案,配置PIP本地源永久配置安装源Windows""" 1、文件管理器文件路径地址栏敲:%APPDATA% 回车,快速进入 C:Users电脑用户AppDataRoaming 文件夹中 2、新建 pip 文件夹并在文件夹中新建 pip.ini 配置文件 3、新增 pip.ini 配置文件内容 """MacOS、Linux""" 1、在用户根目录下 ~ 下创建 .pip 隐藏文件夹,如果已经有了可以跳过 -- mkdir ~/.pip 2、进入 .pip 隐藏文件夹并创建 pip.conf 配置文件 -- cd ~/.pip && touch pip.conf 3、启动 Finder(访达) 按 cmd+shift+g 来的进入,输入 ~/.pip 回车进入 4、新增 pip.conf 配置文件内容 """配置文件内容""" [global] index-url = http://pypi.douban.com/simple [install] use-mirrors =true mirrors =http://pypi.douban.com/simple/ trusted-host =pypi.douban.com """参考文章:https://www.cnblogs.com/tuanzibuku/p/11214423.html
2021年01月30日
2,334 阅读
0 评论
0 点赞
2021-01-22
Python3环境及pycharm编辑器安装及配置
1.Python环境安装首先下载Python3,可以自己从官网下载:https://www.python.org/downloads/也可以从我提供的地址下载:https://file.lanol.cn/E5%20Blog/%E8%A3%85%E6%9C%BA/%E7%A8%8B%E5%BA%8F/Python因为Python官网在国外,所以下载速度可能会慢一点,所以建议从我提供的地址下载,我这里用的版本是3.8.7。根据自己的系统选择是64位或32位下载好之后,双击打开。然后勾选Add Python 3.8 to Path(非常重要),并点击Customize installation这里直接点击Next即可下一步,看图如果你的电脑有多个盘,建议在D盘建一个Python目录,然后新建两个文件夹,Python3.8(python本体)和virtulenv(这个是虚拟环境)然后将路径改到你的Python3.8文件夹点击Install如果出现这个,点击是即可等待安装完成。这个时候按住键盘上的Windows键(就是那个微软图标的按键)+R键,并输入CMD然后就进入到了这里。然后在里面输入python,并回车如果出现这样的就表示安装成功了(请忽略我的3.8.6,因为我之前装过一次了)然后输出你python的第一句hello worldprint('hello world')2.Python编辑器安装这里用的是Pycharm,官网下载地址:https://www.jetbrains.com/pycharm/download/#section=windows网盘下载地址:https://mo.own-cloud.cn/#/s/yJmwiq这里有两个版本,一个收费的一个免费的,免费的话功能少很多,所以这里选择收费版本,可以免费体验30天然后下面是学生白嫖教程,参考去年的教程:https://www.lanol.cn/post/154.html下载之后打开安装,点击Next根据情况选择安装路径,一般直接将C改为D即可全部勾选点击Install等待安装完成并重启即可。如果没有账号就选择Evaluate for free点击这里新建项目这个是pycharm的小贴士提示,关闭即可慢慢等这样一个项目就建成了Pycharm换源以及安装第三方模块:https://www.lanol.cn/post/47.html(这样安装第三方模块的时候速度更快)
2021年01月22日
1,114 阅读
0 评论
2 点赞
1
...
5
6
7
...
21