首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
14,234 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
11,473 阅读
3
gradle-5.4.1-all.zip下载
9,511 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
8,203 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
7,020 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
617
篇文章
累计收到
629
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
617
篇与
的结果
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,492 阅读
2 评论
0 点赞
2020-06-17
ORM常用数据字段类型及字段参数选项
这个摘自Django官方文档,只保留了教程所提到的以及个人感觉会用到的数据类型及参数选项。官方文档地址:https://docs.djangoproject.com/zh-hans/3.0/ref/models/fields/强大的谷歌翻译拯救了我,虽然有这份文档有中文选项但是似乎只有开头那么几句是中文首先是Field字段类型。AutoField类AutoField(** options)会IntegerField根据可用ID自动递增。您通常不需要直接使用它;如果没有另外指定,主键字段将自动添加到模型中。请参阅自动设置主键。这个就相当于我们自己设置的第一列自增的int型的ID吧。BigAutoField¶类BigAutoField(** options)一个64位整数,非常类似于,AutoField不同之处在于它保证可以匹配从1到的数字9223372036854775807。BigIntegerField¶类BigIntegerField(** options)¶一个64位整数,非常类似于,IntegerField不同之处在于它保证可以匹配从-9223372036854775808到的 数字9223372036854775807。此字段的默认表单小部件是 NumberInput。
2020年06月17日
948 阅读
0 评论
0 点赞
2020-06-16
利用Python仿的圈小猫游戏源码
这个圈小猫游戏是吾爱破解的404页面,个人感觉挺好玩的,于是便用Python仿了下来源码下载见文末圈小猫游戏.zip大小:236kb已经过安全软件检测无毒,请您放心下载。
2020年06月16日
3,892 阅读
4 评论
0 点赞
2020-06-15
ORM模型的使用,创建ORM模型,ORM模型映射到数据库,ORM模型增删改查
第一步、创建ORM模型。ORM模型通常放在app的models.py文件中,所以创建该文件,然后需要在settings.py中INSTALLED_APPS添加该app的名称。举个栗子。我的app名称为front,然后在这个目录下新增一个models.py文件在文件中添加自己需要的表以及列如,创建一个表book,列:ID,name,author,pricefrom django.db import models class Book(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=100, null=False) author = models.CharField(max_length=100, null=False) price = models.FloatField(null=False, default=0)在settings.py中INSTALLED_APPS添加该app的名称第二步、映射到数据库中。需要记住两行指令。python manage.py makemigrations #来生成迁移脚本文件。 python manage.py migrate #来将迁移脚本文件映射到数据库中注意:如果输入 Python manage.py makemigrations提示No changes detected,解决方案:输入这行指令即可:python manage.py makemigrations --empty yourappname第三步、增删改查。增:def index(request): # 添加数据 book = Book(name='www.lanol.cn', author='Lan', price=100) book.save() return HttpResponse('你好')查:通过主键:def index(request): # 查询数据 # 1,通过主键 book = Book.objects.get(pk=1) result = f'书本ID:{book.id} 书本名称:{book.name} 书本价格:{book.price}' return HttpResponse(result)查询所有数据:books = Book.objects.all()查找指定数据:调用objects的filter方法。单条件: books = Book.objects.filter(name=' 多条件: books = Book.objects.filter(name='www.lanol.cn',author='lan')删除数据:先get到再删除book = Book.objects.get(name='www.lanol.cn') book.delete()修改数据:先查找到,再修改,修改后保存。book = Book.objects.get(name='www.lanol.cn') book.name = 'lanol.cn' book.save()
2020年06月15日
1,182 阅读
0 评论
0 点赞
2020-06-15
立个Flag,一个月内肝完Django
学完了C#可视化发现,还是WEB端比较实用吧,以前接触了一下Flask,但是也只是皮毛,刚好暑假了,所以来学习一下Django,立个Flag,哈哈,想当初我也是在空间立了Flag搞定爬虫,然后现在做到了。然后这次的目标就是利用暑假时间,学完Django,自己开发(cv)一套影视系统,为啥我对影视这么情有独钟呢,因为以前做了很久的影视网站,所以对这方面也比较熟悉。学习Django的第一天,已学完URL部分和模板部分,发现一个比较好玩的,Python利用Requests可以一键仿站,效果杠杠的。
2020年06月15日
732 阅读
0 评论
0 点赞
2020-06-15
Django连接MySQL缺少mysqlclient包,Python3.8安装mysqlclient
解决方案:下载whl文件,直接安装whl文件在https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient找到适合自己版本的mysqlclient比如我的是win32所以下载的下载到本地之后,最好放到项目文件夹内,在pycharm之中pip,因为这样就可以省略进入虚拟环境的步骤。然后成功安装
2020年06月15日
879 阅读
0 评论
0 点赞
2020-06-14
Django模板结构优化所需要的三个Tag:include,extends,block
利用include引入模板文件一般的网页都有头部(header),底部(footer),然后这些部分通常是不会变的,所以在Django中可以利用include引入模板文件,如我的头部文件是:header.html<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello www.lanol.cn</title> </head>底部文件是:footer.html<div class="footer"> <p>这是Lan的小站的底部文件</p> </div>然后首页文件只需要这样写就可以了:index.html{% include 'header.html' %} <div class="content"> <h1>这是首页文件</h1> </div> {% include 'footer.html' %}默认include标签包含模版,会自动的使用主模版中的上下文,也即可以自动的使用主模版中的变量。如果想传入一些其他的参数,那么可以使用with语句。示例代码如下:# header.html <p>Website:{{ username }}</p> # main.html {% include "header.html" with Website='www.lanol.cn' %}利用extends继承模板文件extends可以直接引用整个文件比如base.html:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>这是base模板</h1> </body> <div class="footer"> <p>这是Lan的小站的底部文件</p> </div> </html>然后index.html只需要一句就可以了:{% extends 'base.html' %}需要注意的是:extends标签必须放在模版的第一行。子模板中的代码必须放在block中,否则将不会被渲染。利用block修改继承的目标文件如果我们需要修改base.html的内容,我们需要在base.html中加一个block,代码中的content为自己起的名字,可以根据需求改<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>这是base模板</h1> </body> <div class="footer"> {% block content %} {% endblock %} </div> </html>然后在index中就可以修改了。{% extends 'base.html' %} {% block content %} <h1>这是block插入</h1> {% endblock %}
2020年06月14日
730 阅读
0 评论
0 点赞
1
...
56
57
58
...
89