
Python
THMAIL
这个作者很懒,什么都没留下…
展开
-
Selenium绕过浏览器指纹的九种方法
同样因为它是基于谷歌无头的,因此它只能用于谷歌无头,不想selenium一样,编写完脚本只需改变少量代码,便可以在多种浏览器中运行。亲测可用,唯一的遗憾是会导致你在脚本运行时,不能使用chrome,且每次数据不会清除,需要自己用selenim去设置清除下,此举也会清除自己日常使用chrome的数据;如果你电脑中没有chromium,执行这段代码后会自动帮你安装,然后再运行这段代码,但是非常慢,所以建议自己网上下载chromium后再执行脚本。这个确实成功了~,无副作用!试了,没用,大家可以自行测试下。原创 2022-11-29 00:28:33 · 7115 阅读 · 4 评论 -
一步解决:CondaError: Error reading file, file should be a text file containing packages
一步解决:CondaError: Error reading file, file should be a text file containing packages;修改文件编码为UTF-8即可,pycharm里直接点击红圈里的位置,然后选择cover即可原创 2022-06-11 09:30:12 · 3924 阅读 · 2 评论 -
python flask jinja2使用Vue,并解决jinja2和vue冲突
http://www.axios-js.com/zh-cn/docs/axios官网方法1<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-wi转载 2021-12-15 14:55:20 · 1202 阅读 · 0 评论 -
numpy 模块中 resize 和 reshape的区别
在numpy模块中,我们经常会使用resize 和 reshape,在具体使用中,通常是使用resize改变数组的尺寸大小,使用reshape用来增加数组的维度。1.resize之前看到别人的博客说,resize没有返回值,其实这取决于你如何使用resize,resize有两种使用方式,一种是没有返回值的,直接对原始的数据进行修改,还有一种用法是有返回值的,所以不会修改原有的数组值。1.1有返回值,不对原始数据进行修改import numpy as npX=np.array([[1,2,3,4],转载 2021-09-14 16:01:18 · 636 阅读 · 0 评论 -
python与命令行(shell,cmd)或者其他命令行程序持续交互的方法
法一:from subprocess import Popen, TimeoutExpired, PIPE# 这里必须使用信号 PIPE 而不是自己创建的文本流,这样才能使用 communicate 函数proc = Popen(args='python ./test.py', shell=True, encoding='utf-8', stdin=PIPE, stdout=PIPE, stderr=PIPE)try: outs, errs = proc.communicate(inp原创 2021-05-21 10:44:10 · 7313 阅读 · 3 评论 -
使用conda安装64位python和32位python共存
今天需要调用一个dll动态函数库,但是本地的python是64位的,dll是32位的,直接调用会报错。OSError: [WinError 193] %1 不是有效的 Win32 应用程序。python版本:3.6anaconda对于python版本的管理还是很方便的,所以这里用anaconda才实现32位和64位python共存1、打开anaconda prompt,输入conda info,可以看到现在用的是64位的。2、切换成32位的set CONDA_FORCE_32BI...转载 2021-02-15 18:57:57 · 6091 阅读 · 3 评论 -
beautifulsoup的get_text方法没有获取到字符串或者字符串为空
问题:今天写爬虫时用beautifulsoup解析网页代码发生了很诡异的事情:使用.prettify()方法打印出的代码正常,并且包含文本数据,但是y用.get_text()死活获取不到文本数据,又试了.string和.text,同样获取不到文本解决:搜索了很久,并未在互联网上找到有效的解决方案,但是折腾了好久,最后重新把bs4的文档全部重读了一遍,突然感觉是解析器的问题,于是果断换个解析器试试,在这里我用的是html5lib,需要用pip安装下,重新运行代码,果然正常了,坑爹啊,浪费几个.原创 2020-08-27 00:13:36 · 2295 阅读 · 3 评论 -
Python3+Scapy安装使用教程
一、说明之前写DoS程序的时候(见"拒绝服务(DoS)理解、防御与实现"),数据包完全是自己构造的,这其中的难处一是要清楚各层协议的字段、字段长度、字段是数值还是字符、大头还是小头,二是计算校验和。整个过程比较痛苦。其实构造DoS数据包,我们经常只是想伪造一下源IP等少数字段,而事实上大量时间花在其他大多数不想关心的字段的构造上。在查找资料过程中发现很多DoS程序直接使用一个“Scapy”的包(开始还以为是Scrapy心想Scrapy什么时候可以用来构造数据包了,后来才注意到少了个“r”)。当时转载 2020-07-21 15:53:46 · 934 阅读 · 0 评论 -
python使用Scapy + Nfqueue抓包并修改
背景1 NfqueueNfqueue是iptables和ip6tables的target,这个target可以将数据包交给用户空间。比如,下面的一个iptables规则iptables -A INPUT -j NFQUEUE --queue-num 0那么在用户空间,可以使用libnetfilter_queue来连接到queue 0(默认)并且从内核获得该消息,然后,必须给出对这个数据包的裁决(Drop,Accept等等)一般在iptables中的target有以下五种(ACCEPT..原创 2020-07-21 15:51:09 · 6704 阅读 · 6 评论 -
用python发布文章到wordpress
第一步、安裝Librarypip install python-wordpress-xmlrpc第二步、開始發文對,就是這麼快速、直接。from wordpress_xmlrpc import Client, WordPressPostfrom wordpress_xmlrpc.methods.users import GetUserInfofrom wordpress_xmlrpc.methods.posts import GetPosts, NewPost#網站登入資訊id=转载 2020-06-13 18:30:51 · 1396 阅读 · 0 评论 -
Pyinstaller打包用spec添加资源文件,亲测可用
最近写的翻译软件——transdocx,就是给普通用户而非Python程序员用的,所以它必须是一个开箱即用的软件,普通用户下载下来就能双击运行。而Python作为一个脚本语言,要运行是必须有解释器的,它不能像C/C++那样编译成二进制。同样,也不能要求普通用户首先安装Python解释器、再安装依赖的包、最后运行transdocx。所以,需要把Python写好的软件打包成一个exe程序,让用户双击既可以使用。打包Python程序的最好的工具可能就是pyinstaller了。下面我就结合transd转载 2020-05-17 01:20:38 · 13154 阅读 · 5 评论 -
pyinstaller 打包生成的程序循环执行,多个同时执行
最近用pyinstaller封装程序,本来单个程序test.py 执行时,进程只有一个,但是pyinstaller之后,程序一直执行。后来发现是程序import的文件有隐藏着的多进程。google了一下,发现解决方法是:from multiprocessing import freeze_supportfreeze_support()之前试了好多次,将上面代码放再main中都不能解决问题,后来发现只有放在开头,包括import 之前才有作用。...转载 2020-05-16 21:57:10 · 967 阅读 · 0 评论 -
uwsgi.ini常用配置参数详解
chdir=/xxx/xxx # 指定项目目录 home=/xxx/xxx # 指定虚拟环境变量 wsgi-file=xxx # 指定加载WSGI文件 socket=xxx # 指定uwsgi的客户端将要连接的socket的路径(使用UNIX socket的情况)或者地址(使用网络地址的情况)。 callable=xxx # uWSGI加载的模块中哪个变量将被调用 master=true...转载 2020-01-25 01:24:29 · 3187 阅读 · 0 评论 -
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
背景博主需要用uwsgi,uwsgi需要Python的头文件;发行版python不包含头文件,于是安装开发版python3-devel;yum 安装的python3-devel是3.6.8的,跑最新的django时就会报错,django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (foun...原创 2020-01-24 19:22:47 · 878 阅读 · 3 评论 -
Django在执行collectstatic时出现胡乱收集(把整个磁盘都搜集了)静态资源的解决方案
问题在项目根目录执行python manage.py collectstatic时,static文件夹下的资源是整个磁盘的静态资源,比如/usr等等原因这种情况是没有配置静态资源查找器,所以默认从磁盘根目录找起,把整个磁盘的静态资源都搜集起来;解决在你的项目settings.py文件中添加STATICFILES_FINDERS = ( "django.contrib.staticfil...原创 2020-01-24 16:28:00 · 842 阅读 · 1 评论 -
关于django+uwsgi+nginx出现静态资源404问题合集
问题:1.Django 直接运行,没问题,静态资源等都正常;2.Django + uwsgi运行,页面正常,静态资源找不到了;分析:翻阅官方文档,发现这么一段:原文:https://docs.djangoproject.com/zh-hans/3.0/howto/static-files/若你使用了前文所述的 django.contrib.staticfiles, runserver...原创 2020-01-24 14:51:30 · 2183 阅读 · 3 评论 -
Django templates加载css/js/image等静态资源
配置步骤:1.首先在应用下面创建static目录2.将静态资源拷贝进去3.在应用的settings.py文件中添加import osBASE_PATH = os.path.dirname(os.path.abspath(__file__))BASE_PATH = os.path.join(BASE_PATH, '../')# 静态资源目录STATICFILES_DIRS = (...转载 2020-01-23 15:41:56 · 320 阅读 · 0 评论 -
关于python的socket
今天遇到一个很奇怪的问题,在python中运行s.recv(length)时,每次读取长度不一样,且都小于length,以至于传输文件总是接收不全,于是翻阅官方文档发现:1.参数length是最大接收字节长度;2.每次执行socket.recv()时,就会从tcp的缓冲区读取一次数据,有多少读多少(少于length时);这就是为什么文件接收不全的原因,要接收整个文件...原创 2020-01-14 01:44:32 · 531 阅读 · 0 评论 -
在树莓派上安装OpenCV
子豪兄教你在树莓派上安装OpenCV 本文介绍了如何在树莓派上安装分别运行在Python2和Python3的OpenCV。 运行在Python2上的OpenCV安装非常简单,几行命令即可搞定。运行在Python3上的OpenCV安装比较麻烦,需要编译安装,不用担心,本文默认你是新手小白,会一步步指导你安装。本教程经过作者亲自测试,自认为是全网最靠谱的相关教程。 原创作者:同济大学开源软件协会 子豪...转载 2020-01-12 23:22:01 · 845 阅读 · 2 评论 -
使用python打开一个会话进程并持续输入
有这样一个需求:使用python打开一个sh会话进程,然后持续地执行命令,像我们平时使用命令行一样可交互的,而不是直接run一段shell命令就没了,实现方法是使用subprocess包,参考例子:from subprocess import Popen, PIPE, STDOUTp = Popen('/bin/bash', stdout=PIPE, stdin=PIPE, stderr=S...原创 2020-01-12 19:11:51 · 726 阅读 · 0 评论 -
为什么用moviepy截取视频/音频后,结果总时间没变
今天在用moviepy合成一段视频和语音,想要视频和语音同步,即视频结束语音也结束,语音结束视频也结束,很简单的一个短板优先的办法,代码如下: my_clip = mpe.VideoFileClip('./temp/test.avi') audio_background = mpe.AudioFileClip('./temp/test.wav') videoLength ...原创 2020-01-08 22:10:55 · 1323 阅读 · 0 评论 -
在python moviepy中编辑后的视频没有声音的解决方案
据说是mac下才会发生,其实不是的,和播放器的音频解码方式有关,大家在调用write_videofile函数时加上参数audio_codec="aac",改变下声道编码即可原创 2020-01-08 21:14:55 · 3654 阅读 · 2 评论 -
声纹识别开源工具
声纹识别,也称为说话人识别,主要的开源工具有:1.MSR Identity Toolkit ,微软开源的工具箱,MATLAB版本,包含GMM-UBM和I-vector的demo,简单易用。下载地址2.Alize,主要包括GMM-UBM、I-vector andJFA三种传统的方法,C++版,简单易用。3.kaldi,当下十分流行的语音识别工具包,也包括声纹识别:覆盖了主流的声纹识别算...转载 2020-01-07 17:28:17 · 2088 阅读 · 0 评论 -
搜狗翻译加密原理分析
写在开头,不差钱的建议直接去调用搜狗官方的api,稳定、不会被封、且高并发,也算对官方的支持>建议先了解下chrome的调试方法:https://www.jianshu.com/p/b25c5b88baf5工具:chrome首页https://fanyi.sogou.com/,先看看调用一次翻译需要哪些数据:第一步:抓包从抓包数据中不难看出,需要一些headers和form...原创 2020-01-07 14:33:36 · 1569 阅读 · 1 评论 -
curl或者python等如何获取自己的出口(公网)IP
利用搜狗的接口:curl https://www.sogou.com/websearch/features/getTime.jsp?cb=COPYRIGHT_GET_YEAR&_=1578364718838:formatted或者import requesturl = 'https://www.sogou.com/websearch/features/getTime.jsp?cb=...原创 2020-01-07 11:30:08 · 781 阅读 · 0 评论 -
python直接打印出任何模块/类等数据结构
简介pprint模块:提供了打印出任何python数据结构类和方法。模块方法:1.class pprint.PrettyPrinter(indent=1,width=80,depth=None, stream=None)创建一个PrettyPrinter对象indent --- 缩进,width --- 一行最大宽度,depth --- 打印...原创 2020-01-06 17:24:41 · 2706 阅读 · 1 评论 -
[Mac] 使用 PyCharm 终端中的 zsh
系统终端使用的是 Oh My Zsh,想在 PyCharm 中也使用。在pycharm中直接打开terminal,却发现环境变量为空,且npm等命令都找不到;解决办法:PyCharm > Perferences > Terminal > Shell path: /bin/zsh;在 ~/.zshrc 文件配置未加的环境变量即可export PATH=${PATH}:...原创 2020-01-05 15:39:54 · 1485 阅读 · 2 评论 -
[Django]post请求Forbidden (CSRF cookie not set.):
WARNING log 228 Forbidden (CSRF cookie not set.): /user/login/WARNING basehttp 154 "POST /user/login/ HTTP/1.1" 403 2840post提交需携带token问题三种解决方法解决:在html文件form表单中添加{% csrf_token %}<form...转载 2020-01-05 15:10:58 · 2159 阅读 · 0 评论 -
Python+Selenium定位不到元素原因及解决方法(报:NoSuchElementException)
今天在写QQ邮箱登录联系的时候,发现无论通过什么定位方法都无法定位,一直报错,报错内容为:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"switcher_plogin"}后来在网...转载 2019-09-20 15:42:21 · 558 阅读 · 0 评论 -
DLL load failed: The specified procedure could not be found
如果你是用的是conda,那么应该用conda install pywin32安装;用pip install pypiwin32 won't work!原创 2019-09-26 13:34:57 · 1062 阅读 · 0 评论 -
Canny边缘检测算法
提取图片的边缘信息是底层数字图像处理的基本任务之一。边缘信息对进一步提取高层语义信息有很大的影响。大部分边缘检测算法都是上个世纪的,OpenCV的使用的算法是Canny边缘检测算法,大概是1986年提出了,似乎说明边缘检测算法的研究已经到达了瓶颈期。跟人眼系统相比,边缘检测算法仍然逊色不少。Canny边缘检测算法是比较出色的算法,它包含以下四个步骤:高斯滤波滤波的主要目的是降噪,一般的图...转载 2019-09-26 14:10:15 · 1893 阅读 · 0 评论 -
OpenCV-Python教程:22.轮廓层级
理论在前面的关于轮廓的几节里,我们介绍了轮廓相关的一些函数。但当我们用cv2.findContours()函数来找轮廓的时候,我们传入了一个参数,Contour Retrieval Mode。我们一般传的是cv2.RETR_LIST或者cv2.RETR_TREE这样就可以了。但是这个参数实际是什么意思呢?并且在输出时我们得到了三个数组,第一个是图像,第二个是我们的轮廓,第三个输出名字是hi...转载 2019-09-26 15:19:34 · 919 阅读 · 0 评论 -
OpenCV图像处理-轮廓和轮廓特征
OpenCV 中的轮廓✏️问:什么是轮廓?????️答:轮廓是一系列相连的点组成的曲线,代表了物体的基本外形,相对于边缘,轮廓是连续的,边缘并不全部连续。✏️问:如何寻找轮廓?????️答:寻找轮廓的操作一般用于二值化图,所以通常会使用阈值分割或Canny边缘检测先得到二值图PS:寻找轮廓是针对白色物体的,一定要保证物体是白色,而背景是黑色,不然很多人在寻找轮廓时会找到图片最外面的一个框。...转载 2019-09-26 15:20:39 · 1358 阅读 · 0 评论 -
网络爬虫之使用pyppeteer替代selenium完美绕过webdriver检测
1引言 2 手动安装 3 主要操作 3.1 打开浏览器 3.2 调整窗口大小 3.3 设置userAgent 3.4 执行js脚本 3.5 模拟操作 3.6 某电商平台模拟登陆 4 总结回到顶部1引言曾经使用模拟浏览器操作(selenium + webdriver)来写爬虫,但是稍微有点反爬的网站都会对selenium和webdriver进行识别,...转载 2019-09-26 16:48:25 · 1473 阅读 · 0 评论 -
为什么opencv用GPU实现比用CPU实现的慢?
问题打算通过OpenCV的GPU模块优化现有代码的运行效率,怀抱着美好愿望开始了代码的改写工作。改写的过程并不顺利,遇到了不少问题。例如,gpu模块提供的接口非常坑爹,相当一部分不支持浮点类型(像histogram、integral这类常用的都不支持);又如,遇到阈值判断的地方,就必须传回cpu处理,因为gpu函数都是并行处理的,每改写完一个算法模块,就测试一下运行效率,有的时候是振奋人心,...转载 2019-09-27 11:21:18 · 2090 阅读 · 0 评论 -
pip 更新所有包
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip install -U转载自:https://www.zhihu.com/question/63202629转载 2019-01-05 15:36:51 · 1777 阅读 · 0 评论 -
BeautifulSoup模块
BeautifulSoup模块可以参考官方文档,这里是翻译版的地址:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html原创 2017-02-22 15:26:25 · 707 阅读 · 0 评论 -
关于selenium截屏大小的问题
selenium截屏方法save_screenshot(filename);selenium默认的浏览器窗口大小有多大我不知道,但是在截图时,保存在本地的图片中有的网页是显示不完全的,这时可以设置浏览器窗口大小,这样就可以显示完全了,方法是broswer.set_window_size(1920,1080);顺便提一下这个类设置全屏的方法broswer.maximize_window(...原创 2019-09-20 15:27:25 · 3474 阅读 · 0 评论 -
Selenium爬虫-获取浏览器Network请求和响应
1.问题自从发现Selenium这块新大陆后,许多异步加载、js加密、动态Cookie等问题都变得非常简单,大大简化了爬虫的难度。但是有些时候使用Selenium仍然有一些缺陷,比如现在很多网站数据都是通过json结构的接口来交互,通过分析报文的方式直接发包可以直接拿到json数据,数据不但全而且还很好解析,这比解析html网页容易多了。另一个非常重要的问题就是,很多时候一些接口返...转载 2019-09-19 17:27:39 · 27000 阅读 · 31 评论 -
Python 设置系统默认编码
1. # coding:utf-8作用是定义源代码的编码. 如果没有定义, 此源码中是不可以包含中文字符串的.PEP 0263 -- Defining Python Source Code Encodingshttps://www.python.org/dev/peps/pep-0263/2. sys.getdefaultencoding()是设置默认的string的编码格转载 2017-05-03 11:44:19 · 823 阅读 · 0 评论