python
我不喜欢这个世界
我的指尖有改变世界的力量。
展开
-
undetected_chromedriver设置不加载图片
请注意,不建议用webdriver的ChromeOptions建议用undetected_chromedriver的ChromeOptionsoptions = uc.ChromeOptions()options.add_argument('--blink-settings=imagesEnabled=false')--blink-settings=imagesEnabled=false原创 2022-02-21 20:48:36 · 1630 阅读 · 0 评论 -
python下faceswap换脸报experimental.json错误解决方案
先看以下错误,我用的是ubutun系统,其他系统如果出现类似,解决方案类似Traceback (most recent call last): File "faceswap.py", line 6, in <module> from lib.cli import args as cli_args File "/home/ztz/ai_face/faceswap-master/lib/cli/args.py", line 13, in <module> f原创 2021-12-27 18:08:44 · 1867 阅读 · 0 评论 -
android的输出流和剪裁python实现以下原理
大家一定要先去看谷歌官方的说明https://source.android.google.cn/devices/camera/images/crop-region-43-ratio.png?hl=zh-cn因为需要做图片处理放在android上用来拦截视频流所以看了一下话不多说,直接上代码from PIL import Image, ImageDraw, ImageFont# 2000:15000 300w像素image = Image.new(mode='RGBA', size=原创 2021-12-27 17:29:59 · 1653 阅读 · 0 评论 -
python解密qiqiuyun(气球云)sdk
hls和m3u8概念大家先去了解一下本文主要讲述解密过程(因为爬取的网站已经关闭,只能讲述了)首先是主网站headers里面关键字段timestamp 和 tokenkey的话调试跟踪一下很简单就能拿到token = key +timestampheaders携带就行m3u8部分:通过https://api.xxx.com/public/getVideoToken链接访问拿到videoToken访问https://play.qiqiuyun.net/sdk_api/pl.原创 2021-12-14 15:05:58 · 13422 阅读 · 6 评论 -
flask中send_file模块返回现生成的缓存文件流txt,不用先创建txt文件再读取
@app.route('/')def index(): file = BytesIO() file.write(('\n'.join([str(i)for i in range(0,10000)]).encode())) file.seek(0) return send_file(file, as_attachment=True, attachment_filename=time.strftime("xxx.txt" )z原创 2021-06-18 11:08:54 · 1518 阅读 · 0 评论 -
python生成可执行exe控制Microsip自动填写号码并拨打
控制的前提是已经运行Microsip.exe首先选择文件,选择txt格式文件,一行一个手机号格式;如下点击拨打下一个,就会自动输入自动拨打代码:import tkinterimport win32guiimport win32confrom tkinter import filedialogimport tkinter.messageboximport osimport timedef next_phone(phone): win = win32g..原创 2021-06-17 11:27:44 · 1139 阅读 · 9 评论 -
python3 fiddler py3amf 中对抓包amf 变相处理
抓包遇到amf格式首先需要使用py3amf 库但是不清楚 提交的数据 怎么拼凑提交的数据 fiddler上显示 乱码确保求快解决 不想逆向我们可以直接打开fiddler的hexview 然后选择提交数据对应的hex copy提交的数据注意 header和提交数据之间有换行符,就是79后面的四个空位小点点我们从四个点以后copy (右键保存base64)这样就拿到base64编码的字节了发起请求import base64import re..原创 2021-06-05 20:54:10 · 957 阅读 · 0 评论 -
c++ do_xor(异或运算加密) 改写成python和java
c++源码:int DO_XOR(byte* result, signed int a2){ int v2; // r3 int v3; // lr int v4; // r3 if (a2 >= 2) { v2 = 0; v3 = a2 / 2; do { result[v2] ^= result[a2 / 2 + v2]; ++v2; } while (v3 != v2); if (a2 >= 2 && v3 <原创 2021-05-27 19:41:25 · 140 阅读 · 0 评论 -
frida object转byte[]转string转其他
frida中遇到object对象时候使用JSON.stringify(x)转发现是<instance: java.lang.Object, $className: [B>类似的还有<instance: java.lang.Object, $className: java.lang.String><instance: java.lang.Object, $className: java.util.TreeMap$EntrySet><instance:原创 2021-01-27 18:18:36 · 7574 阅读 · 5 评论 -
python和java中相同的 AES/CFB/NoPadding加密
python和java的AES/CFB/NoPadding加密还是有点区别的实现相同的加密方式上代码python中def encrypt_(text): key = 'keyxxx'.encode() mode = AES.MODE_CFB cryptos = AES.new(key, mode, 'ivxxxx'.encode(),segment_size=128) cipher_text = cryptos.encrypt(text.encode()) r原创 2021-01-23 15:19:21 · 1613 阅读 · 0 评论 -
python requests解压响应gizp数据包并解密转码
import requestsres= requests.post('http://www.xx.com',headers=headers,data=data)data = gzip.decompress(res.content).decode("utf-8")#gip解压#data = x149_170_124_157_150_xxx_xxx_201_188_149_163y#因为data是x开头结尾这种形式所以需要转码和解密 #下面进行转码k = [48, 49, 50, 51, 52,原创 2021-01-22 11:42:32 · 2369 阅读 · 1 评论 -
python post 提交gzip表单数据
import requestsimport jsonimport gzipurl = 'http://www.xxx.com'headers = {"Content-Type":"text/html","Content-Length":"1077","Host":"www.xxx.com","Connection":"Keep-Alive","Accept-Encoding":"gzip","User-Agent":"okhttp/3.8.0",}account = "1002323原创 2021-01-22 11:34:37 · 786 阅读 · 0 评论 -
python调用dll库(python调用.net) c#编写
1:安装pip install pythonnet2:dll库编写(或者使用别人写好的)(1)如何创建:然后写上c#代码(MyTestDll.dll):using System;using System.IO;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Security.Cryptography;nam原创 2020-11-19 19:43:14 · 1849 阅读 · 0 评论 -
python继承threading.Thread实现有返回值的子类
继承与threading.Thread实现有返回值的子类MyThreadimport threadingclass MyThread(threading.Thread): def __init__(self,func,args=()): super(MyThread,self).__init__() self.func = func ...原创 2019-01-14 15:03:02 · 1381 阅读 · 0 评论 -
python中mongo同时设置索引和id自增(find_and_modify)问题的解决方案
针对之前这篇文章python中设置mongo的id为自增(find_and_modify函数)对于单纯的设置id自增是没有问题的,可是当我们需要自增,又需要设置某一字段为索引时候,当插入重复数据的时候,因重复数据插入不进去,数据总数不增长的情况下,id反而会自增,出现此问题的解决方案就是,添加另外一个find_and_modify函数,用来控制数据重复时候,不进行自增。...原创 2018-09-21 11:13:01 · 2985 阅读 · 1 评论 -
python解决mongo日志占用存储过大的问题
当操作mongo,很频繁存取的时候,mongo的日志会变得越来越大,针对公司每天百亿级别的取和存,并保持mongo不重启的情况下,用python写定时脚本,并保持mongo一直在线,不重启。首先看一下在linux(centos)测试机上的mongo简单配置文件(mongodb.conf)bind_ip=0.0.0.0port=27017dbpath=/usr/local/mo...原创 2018-08-18 15:53:01 · 811 阅读 · 2 评论 -
Python中post提交数据格式攻略
爬虫除了经常用到的get请求以外,还会用到post请求,公司里新来了几个爬虫,感觉他们对post提交的格式问题,不是特别清楚。关于post提交,我们经常见到的就是在html网页中使用,经常遇到两种格式1 表单2 json提交1 (表单提交)我们可以打开google浏览器访问一个网页看一下Headers其中 Request Method:Post表示...原创 2018-08-14 23:22:58 · 7681 阅读 · 0 评论 -
python自动格式化Google浏览器下请求头参数
python抓取数据时候经常需要携带请求头之类参数,看到同事都是google浏览器中复制粘贴,然后手动一行一行转变成字典格式,以便符合携带格式。太繁琐,效率太低。这种东西就应该工具化,直接上代码:#coding:utf-8with open("请求头.txt")as f: res = f.readlines()headers ={}for r in res: ...原创 2018-08-11 17:01:18 · 1283 阅读 · 0 评论 -
python验证手机号是否注册学信网
返回值有两种状态:true 和 falsetrue 表示没被注册 :12345678900也是true,满足11位的就可以被检测,并不能检测手机号本身是否有效, 但是正常手机号,没被注册就是true。false 表示已经注册或者手机号格式不对:比如位数不是11位代码:import requests,reheaders =...原创 2018-06-21 11:41:31 · 1447 阅读 · 0 评论 -
python中用url_for构造URL
用url_for构造URL,他接受函数名作为第一个参数, 也接受对应URL规则的变量部分的命名参数, 未知的变量部分会添加到URL末尾作为查询参数。 构建URL而不选择直接在代码中拼URL的原因有两点: 1)在未来有更改的时候只需要一次性修改URL,而不用到处替换; 2)URL构建会转义特殊字符和Unicode数据, 这些工作不需要我们自己处理。下面是个例子:from f转载 2017-12-04 00:31:21 · 5194 阅读 · 1 评论 -
python中设置mongo的id为自增(find_and_modify函数)
使用find_and_modify函数 可以设置mongo的id为自增且可以支持原有的高并发操作, find_and_modify函数完成更新查找两个操作 其是原子性的操作代码:(auto_id.py)#coding:utf-8import pymongoclient=pymongo.MongoClient('localhost',27017)#链接数据库#创建dbdb数据库db =cli原创 2018-01-22 22:52:17 · 7181 阅读 · 1 评论 -
python无限生成不重复(字母,数字,字符)组合
使用python自带的itertools模块 调用其product函数传入我们想组合生成的字符数据 便会源源不断的生成组合 而且不会重复repeat参数指定生成多少位import itertoolsmylist=("".join(x) for x in itertools.product("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL原创 2018-01-24 09:38:33 · 5957 阅读 · 0 评论 -
python收邮件读邮件imaplib
使用imaplib取邮箱里的邮件 #账户密码 email='xxxx@outlook.com' password='xxxx' #链接邮箱服务器 conn = imaplib.IMAP4_SSL("imap-mail.outlook.com", 993) #登录 conn.login(email,password) #收邮件 INBOX = conn.select("INBOX")原创 2018-01-31 21:30:38 · 6134 阅读 · 3 评论 -
python发送邮件
#coding:utf-8from email.header import Headerfrom email.mime.text import MIMETextimport smtplib#发件人地址from_addr = 'xxxxxx@163.com'#发件人密码password ='xxxxxxx'#收件人地址to_addr = 'xxxxx@xxx.com'#163邮箱原创 2018-01-27 11:25:00 · 520 阅读 · 0 评论 -
python在linux centos下安装phantomjs
(1)创建文件夹mkdir ~/myspace/(2)进入创建的文件夹cd ~/myspace/(3)下载phantomjs包wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2(4)解压phantomjs包tar -xjvf phantomjs-2.1.1-linux-x8原创 2018-02-07 09:23:42 · 1184 阅读 · 0 评论 -
python对email中的混淆加密进行解密
上次有同学问我: email混淆加密,渲染出来能看到,但是代码请求时候拿不到真正的值。 解决方案分享一下给大家: 仔细看代码我们会发现一串链接: 如下:<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5c36283036382b1c6d6a6f723f3331">[email prot原创 2018-03-13 21:57:29 · 2142 阅读 · 0 评论 -
python爬虫解决赶集网扫码获取手机号
(1)正常的抓取页面: 不需要扫码,需要点击查看的 但是没有这个必要,我们仔细看html代码: 发现里面就已经包含了手机号码;点击查看手机号只是个摆设。(2)需要扫码的一个页面,网址为:http://hz.ganji.com/fang1/2938272612x.htm这个的话我们再次查看html代码:发现并没有手机号存在; 先别着急,我们先研究一下二维码到底包含了什么信息: 用(草原创 2018-03-13 22:47:37 · 14825 阅读 · 6 评论 -
python使用appium-desk操控小米手机
话不多说: appium-desk请自行安装,网上很多文章,就省略此部分了。 1:打开开发者选项: 1. 点选手机设置 2. 点击顶部的我的设备。 3. 找到全部参数点击进去。 4. 在miui版本这里连续点击多次,直到提示进去开发者模式。 5. 返回设置下滑屏幕,找到更多设置, 下拉就看到开发者选项了。 2:在开发者选项里进行设置开启 usb调试开启 usb安...原创 2018-04-16 10:29:12 · 3012 阅读 · 0 评论 -
python生成vcf通讯录文件
话不多说。 先看一下vcf格式:BEGIN:VCARDVERSION:2.1FN:7814260568 TEL;CELL:0017814260568END:VCARD(注意vcf文件不要双击打开,要通过文本或者用工具打开, 不然你关闭不掉。)7814260568表示名字0017814260568表示手机号001中00表示(+)号,1表示国家代号比如008613055534469可以原创 2018-04-14 10:02:19 · 5702 阅读 · 1 评论 -
python检测端口并杀死(windows下)
快速检测windows下的端口占用,并杀死它。在项目中可能会使用到,比如adb控制,appium控制等。。话不多说直接上代码:import osdef kill_port(port): # 查找端口的pid find_port= 'netstat -aon | findstr %s' % port result = os.popen(find_port) ...原创 2018-05-14 14:02:59 · 3853 阅读 · 0 评论 -
python验证手机号是否注册过微博
首先看一下返回格式:"code":"100000"表示没注册"code":"600001"表示已经注册{"code":"100000","data":{"id":"","state":true,"type":"ok","code":&qu原创 2018-06-04 19:46:08 · 2916 阅读 · 0 评论 -
python对接蚂蚁验证码平台
蚂蚁平台提供的API是LUA和按键精灵的(http://www.66yzm.com/)看了下文档,发现没有蟒蛇对接的那就自己写。话不多说直接上代码:import requests,reusername = "xxx"#用户名password = "xxx"#密码def login(): url = "http://www.66yzm.com/api/admin/...原创 2018-05-30 09:09:30 · 9264 阅读 · 3 评论 -
python中pip为什么比easy_install好
其实pip可以说是easy_install的替代品,都是Python包的管理工具。 pip之所以能成为主流原因:1)pip已经内置到Python2.7.9和Python3.6及其以上版本里面。2)easy_install只支持安装,没有提供卸载, 展示当前已经安装的包列表等功能。3)pip支持二进制包使用wheel格式(后缀是.whl), 而easy_install不支持。4)pip能非常好的原创 2017-12-03 13:51:56 · 342 阅读 · 0 评论