python2.7
文章平均质量分 92
锅炉房刘大爷
在最该去打拼的年纪,找一份稳定的工作,后来你会发现,哇塞,你穷的果然很稳定。
展开
-
Cannot uninstall 'numpy'问题
今天不知道做了什么骚操作,导致import cv2的时候突然报错:ImportError: numpy.core.multiarray failed to import应该是numpy安装出错了,所以执行pip uninstallnumpy,貌似成功卸载了,然后重新pip install numpy发现还是不行,会报错:Found existing installation: num...原创 2020-05-06 22:41:18 · 10996 阅读 · 3 评论 -
python处理类似\u0005字符
抓取页面内容时,在打印的时候会出现类似“\u0005”、“\u0006”的字符,可以这样处理:m = '\u0005'.decode('unicode-escape').encode('utf8')title = title.replace(m, '')此时title中就不会再出现“\u0005”字符了...原创 2020-03-27 17:04:04 · 2822 阅读 · 0 评论 -
mac os 10.13.6安装python gevent
我是为了安装python2版本的gevent,发现在mac上直接使用pip install gevent会失败,并报如下错误:ERROR: Could not find a version that satisfies the requirement gevent (from versions: none)ERROR: No matching distribution found for ...原创 2020-03-10 17:26:22 · 1860 阅读 · 0 评论 -
mac下import MySQLdb报错Library not loaded
本地将homebrew更新后,在使用python的时候出现了问题:import MySQLdbFile "/usr/local/lib/python2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>import _mysqlImportError: dlopen(/usr/local/lib/pyt...原创 2019-12-04 15:33:35 · 664 阅读 · 0 评论 -
centos使用python execjs模块报错问题
在centos7上使用python的execjs会报错:raise exceptions.RuntimeUnavailableError("Could not find an available JavaScript runtime.")经查找资料发现是linux上缺少可执行js的环境,解决办法,安装nodejs:yum install nodejs...原创 2019-11-01 19:13:25 · 1920 阅读 · 1 评论 -
使用python的OpenCV模块识别滑动验证码的缺口
前面写过一篇使用selenium模拟登录解决滑块验证问题,在该篇文章里,使用selenium滑动模块找缺口主要靠“蒙”,最近终于找到一个好的方法,可以将滑动验证码中的缺口识别出来了,主要是学习了点击打开链接中的方法,再次表示万分感谢。通过使用selenium模拟登录解决滑块验证问题中的链接可以得到如下两张图片:target.jpgtemplate.png现在想要通过“template.png”在“...原创 2018-05-29 19:09:03 · 14709 阅读 · 22 评论 -
整理
1.字典排序按照value值大小排序>>> d = {'75': '8', '12': '9', '14': '3', '88': '14', '60': '14', '61': '13', '62': '8', '63': '9', '64': '10', '65': '9', '7': '13', '9': '11', '8': '11'}>>>...原创 2018-05-29 15:55:18 · 333 阅读 · 0 评论 -
python中对list去重的多种方法
直接上代码:# encoding=utf8import itertoolsdef dup_remove(lis, i): if i in lis: return lis else: return lis + [i]def main(): l = ['b','c','d','b','c','a','a'] # 利用set print list(set(l)) # ...原创 2018-04-28 10:20:12 · 294 阅读 · 0 评论 -
Python multiprocessing模块中Pool
multiprocessing模块中Pool简单来说就是用来创建多进程的。1.apply和apply_asyncapply方法会阻塞父进程,而且进程池中的进程是一个接一个执行的,并没有并行工作;如果想要进程池中的进程并行工作,可以使用apply_async方法。先看apply的例子:# encoding=utf8from multiprocessing import Poolimport t...原创 2018-05-06 16:04:04 · 1655 阅读 · 0 评论 -
Windows使用uncompyle6
安装:pip install uncompyle6cmd下查看使用方法:uncompyle6 --helpUsage: uncompile [OPTIONS]... [ FILE | DIR]... uncompile [--help | -h | --V | --version]Examples: uncompile foo.pyc bar.pyc # decompi...原创 2018-04-26 13:07:54 · 12867 阅读 · 6 评论 -
wy滑块验证登录
https://github.com/BibiBabiBobi/Test1原创 2018-05-30 13:10:32 · 1155 阅读 · 0 评论 -
Selenium调用PhantomJS的时候报错:Selenium support for PhantomJS has been deprecated
之前的一篇文章使用selenium模拟登录解决滑块验证问题,使用的是Chrome,但它本身不是无头浏览器,这样在Linux环境下就无法正常调用,所以考虑使用PhantomJS进行模拟登录。看了半天,发现依然可以使用Selenium,在创建webdriver的时候只要调用PhantomJS就可以了,像这样:driver = webdriver.PhantomJS(executable_path="p...原创 2018-06-01 14:19:59 · 3830 阅读 · 0 评论 -
python内存管理初窥
先看一段代码:l1 = []for i in range(5): l1.append(i)print '--- l1: ', l1l2 = []a = 0for i in range(5): a = i l2.append(a)print '--- l2: ', l2l3 = []a = '0'for i in range(5): a = str(i) l3....原创 2018-08-31 10:35:27 · 268 阅读 · 0 评论 -
神奇的Firefox57
该办法只适用于我遇到的一个网站,其他出现类似问题的网站是否可以解决暂时不知晓,仅做记录。问题:在使用selenium模拟登录的时候,目标网站竟然能识别出客户端是通过selenium调用的!类似的讨论有:打开。解决办法:从同事(大神)那里得知,使用Firefox57版本,就不会出现这种问题。目前在使用mac系统,所以保存的Firefox57版本也是mac版的。链接:https://p...原创 2018-09-12 17:00:07 · 670 阅读 · 0 评论 -
Python2.7使用enum的坑
在使用enum的时候,遇见了如下问题:发现并不能通过Color.red.value获取值,而是通过Color.red后查找资料,需要再安装一个python包:pip install enum34然后就可以了:...原创 2018-10-19 17:07:21 · 10020 阅读 · 0 评论 -
使用python imapclient访问163邮箱
# coding=utf8"""python 2.7"""import reimport osimport sysimport timeimport jsonimport emailimport loggingfrom imapclient import IMAPClientlogging.basicConfig( level=logging.DEBUG,...原创 2019-01-07 19:02:18 · 3209 阅读 · 4 评论 -
pycharm使用Python Console报错:Cannot start process, the working directory '' does not exist
我用的是mac版本的pycharm,出现上述问题后,进行如下操作:1.打开Preferences2.设置Python Consol的environment在project一项里,选择一个已创建的项目,确定之后就可以了...原创 2019-02-14 17:50:03 · 9353 阅读 · 2 评论 -
python调用若快打码接口
最近有打码需求,选择的若快,以下是通过python调用api来实现若快打码接口调用。# encoding=utf8import requestsimport timedef get_verify_code(im, typeid): verify_code = '****' url = 'http://api.ruokuai.com/create.json' params = { ...原创 2018-04-25 16:29:05 · 6030 阅读 · 3 评论 -
使用python PIL库实现简单验证码的去噪
首先要感谢一下字符型图片验证码识别完整过程及Python实现的博主,我的大部分知识点都是从他那里学来的。想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括:将彩色图片转换成灰度图、将灰度图二值化和去除噪点三个基本过程。这里仅以比较简单的验证码为例,介绍一下如何通过python的PIL库对图片去噪。首先看一下未经处理的验证码图片:对图片处理主要...原创 2018-04-20 20:25:36 · 7372 阅读 · 3 评论 -
python的session方法使用记录
直接上代码:# encoding=utf8'''Python2环境下'''import requestsdef main(): session = requests.session() # requests.utils.dict_from_cookiejar方法可以将cookiejar对象转换成一个dict对象 cookies = requests.utils.dict...原创 2018-03-07 15:33:43 · 15503 阅读 · 0 评论 -
python判断目标网页编码
第一种是使用requests模块下载网页后会得到一个response对象,通过response对象的apparent_encoding方法可以获得目标网页的编码:import requestsurl = 'http://news.ifeng.com/a/20180311/56636409_0.shtml'resp = requests.get(url)resp.apparent_enc...原创 2018-03-11 14:47:49 · 230 阅读 · 0 评论 -
使用AWS的python库boto3调用ec2服务
1.安装和使用系统:Ubuntu14首先安装两个python包:pip install boto3pip install awscli然后设置凭证文件,输入,aws configure:设置后,在~/.aws/目录下会多出两个配置文件,里面记录了刚刚输入的验证数据:之后就可以使用boto3这个python包来编写自己的脚本了。2.部分常用属性和方法# encoding=utf8import b...原创 2018-03-12 14:13:02 · 5712 阅读 · 0 评论 -
python装饰器小结
按照我自己的理解,python装饰器的作用就是让一些重复性的“操作”(代码)只出现一次就好,这样整个代码看起来会更清晰整洁,主要也减少了无谓的赋值粘贴。例如,当前有两个方法get请求和post请求,在执行两个方法前,都要先检查一下请求的url是否符合要求,一般会这样写:# encoding=utf8import requestsclass Test(): def __init__(se...原创 2018-03-18 19:58:00 · 213 阅读 · 0 评论 -
关于python线程模块threading的学习总结:threading.Thread对象的join方法
如果想了解什么是线程,推荐看一看这篇文章,真的是生动形象:趣文:我是一个线程1.子线程不使用join方法join方法主要是会阻塞主线程,在子线程结束运行前,主线程会被阻塞等待。这里用一个例子来说明:# encoding=utf8import threadingimport timedef now(): return '%.3f' % time.time()def test(n):...原创 2018-03-22 20:37:56 · 4530 阅读 · 0 评论 -
笨办法安装python包
以安装selenium为例,原本安装的版本是2.X的,后来发现已经更新到了3.11.0,使用pip更新一直没成功,遂换一种比较笨的方法安装最新的selenium库。 首先是卸载旧的版本:pip uninstall selenium 接着通过https://pypi.python.org/pypi/selenium#downloads下载最新的安装包,下载的是wheel文件。 ...原创 2018-03-21 10:07:03 · 278 阅读 · 0 评论 -
Python2.7 类中的__nonzero__方法
在一个类中,如果定义了__nonzero__函数,那么该类的实例被转换为布尔值的时候,就会用到该方法。直接用代码来说明:# encoding=utf8class Test1(): passclass Test2(): def __nonzero__(self): print "I'm False" return Falseprint bool(Test1())print ...原创 2018-04-09 10:00:03 · 773 阅读 · 0 评论 -
使用selenium模拟登录解决滑块验证问题
本次主要是使用selenium模拟登录网页端的TX新闻,本来最开始是模拟请求的,但是某一天突然发现,部分账号需要经过滑块验证才能正常登录,如果还是模拟请求,需要的参数太多了,找的心累。不过好在TX的滑块验证是他们自己开发的,没有极验那么复杂,当然相反的,想要模拟就得自己去一点点探索了,毕竟对极验滑块的破解,网上已经可以找到现成的代码来用了。下面说一下模拟的实现过程和我遇见的问题。1.登录入口我是通...原创 2018-04-02 21:04:50 · 77921 阅读 · 26 评论 -
Python threading中lock的使用
在多线程中使用lock可以让多个线程在共享资源的时候不会“乱”,例如,创建多个线程,每个线程都往空列表l中添加一个数字并打印当前的列表l,如果不加锁,就可能会这样:# encoding=utf8import threadingimport timelock = threading.Lock()l = []def test1(n): lock.acquire() l.append...原创 2018-03-28 21:02:43 · 31534 阅读 · 6 评论 -
Python threading中event的使用
通过threading.Event()可以创建一个事件管理标志,该标志(event)默认为False,event对象主要有四种方法可以调用: event.wait(timeout=None):调用该方法的线程会被阻塞,如果设置了timeout参数,超时后,线程会停止阻塞继续执行; event.set():将event的标志设置为True,调用wait方法的所有线程将被唤醒; ev...原创 2018-03-28 22:12:36 · 38252 阅读 · 8 评论 -
python lxml中etree的简单应用1
我一般都是通过xpath解析DOM树的时候会使用lxml的etree,可以很方便的从html源码中得到自己想要的内容。这里主要介绍一下我常用到的两个方法,分别是etree.HTML()和etree.tostrint()。1.etree.HTML()etree.HTML()可以用来解析字符串格式的HTML文档对象,将传进去的字符串转变成_Element对象。作为_Element对象,可以...原创 2018-04-11 22:47:54 · 37744 阅读 · 8 评论 -
python lxml中etree的简单应用2
通过python lxml中etree的简单应用1的介绍可以知道,有了etree.HTML()和etree.tostrint(),我们就可以很方便的在字符串对象和_Element对象进行转换了,接着介绍一下如何用etree对html源码进行过滤。假设现有如下html代码:“<h1>12345</h1><script>js</script><h2...原创 2018-04-11 23:45:37 · 1450 阅读 · 0 评论 -
python lxml中etree的简单应用3
本次主要介绍,无论使用的xpath表达式中是否包含text()方法,最后都可以获取目标标签下的文本。使用的依然是etree.HTML和etree.tostring方法。1.思路首先将字符串源码转换成_Element对象,然后使用_Element对象的xpath()方法解析xpath表达式。如果通过xpath表达式解析得到的是文本对象,那么先将文本对象(也是字符串)转换成_Element对象,最后通...原创 2018-04-12 09:43:39 · 1431 阅读 · 0 评论 -
Python multiprocessing模块中Queue的通信问题
先简单说一下Queue的常用方法:put:向队列插入一个数据get:从队列取出并删除一个数据(先进先出)empty:判断队列是否为空最近发现了一个有意思的地方,在多进程加入Queue后,如果你不告诉其中通过Queue取东西的进程Queue此时已经空了,那么该进程不会自动中断,而且好像也不会继续做其他的事情,像这样:# encoding=utf8from multiprocessing impo...原创 2018-04-22 20:39:25 · 6010 阅读 · 0 评论 -
简单记录深浅复制copy和deepcopy
直接上代码:# encoding=utf8from copy import copy, deepcopydef main(): a = ['a', [1, 2]] b = a c = copy(a) d = deepcopy(a) a.append('b') a[1][1] = 3 print 'a: ', a print 'b: ', b print 'c: ', ...原创 2018-04-18 19:02:08 · 308 阅读 · 0 评论 -
Python多进程multiprocessing的简单介绍
通过multiprocessing的Process类,我们可以创建一个Process对象。Process类类似于Python线程中的threading.Thread,可以通过这里了解一下。直接上代码:# encoding=utf8import osfrom multiprocessing import Processs = '\033[31;42m'e = '\033[0m'def...原创 2018-04-13 19:37:56 · 530 阅读 · 0 评论 -
记录Win64 Python2.7安装scikit-learn过程
想正常使用scikit-learn就可能会依赖numpy、scipy等python包,本来电脑上已经安装了numpy和scipy,但是安装scikit-learn后依然出现各种异常。最开始安装的时候使用的pip:pip install scikit-learn,安装成功后使用的时候就报各种错,查资料可能是因为安装的numpy、scipy包的版本不支持(不兼容),所以就考虑对已经安装的num...原创 2018-04-20 17:23:03 · 1220 阅读 · 0 评论 -
python执行“古怪的”js代码问题
因工作需要,碰见了这样的js代码,以前没见过,所以没见识的觉得“古怪”:!+[]+!+[]+!+[]+!+[]在chrome的console中输入可以得到:这样一串的“![]+”竟然可以表示一个数字!非前端人员表示好厉害。。。。。。然后简单说一下用python如何执行该js代码,因为需要,我使用的是Python的ghost模块,简单的代码实现如下:import ghostgh = ghost.G...原创 2018-03-07 13:54:51 · 666 阅读 · 0 评论