在爬虫时,经常遇到登录需要验证码的情况,简单的验证码可以自己解决,复制的验证码需要借助机器学习,有一定的难度。还有一个简单的方案就是采用付费的打码平台。比如R若快(http://www.ruokuai.com/client),还有云打码平台(http://www.yundama.com/price.html)下面以R若快为例介绍打码平台的思路:R若快平台需要注册两个用户,一个是普通用户,一个开发者用户,1、首先验证码截图,就是截取网站上登录页面的验证码图片
系统 2019-09-27 17:56:53 2329
要求:实现功能:用户输入喜欢的电影名字,程序即可在电影天堂https://www.ygdy8.com爬取电影所对应的下载链接,并将下载链接打印出来。importrequestsfrombs4importBeautifulSoupfromurllib.requestimportquote#quote()函数,可以帮我们把内容转为标准的url格式,作为网址的一部分打开movie=input('你想看什么电影呀?')gbkmovie=movie.encode('
系统 2019-09-27 17:55:22 2329
1,什么是Requests库Requests是用python语言编写,基于urllib,采用Apache2Licensed开源协议的HTTP库。它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求,用一句话来说,Requests是python实现的简单易用的HTTP库。安装Request,直接输入pip3installrequests2,使用方法(底部有码云地址)相对上一期的urllib库要简单了很多了(个人觉得简单了不少的)各种请求
系统 2019-09-27 17:49:48 2329
今天遇到一个问题,在同事随意的提示下,用了itertools.groupby这个函数。不过这个东西最终还是没用上。问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变。直观方法最简单的思路就是:复制代码代码如下:ids=[1,2,3,3,4,2,3,4,5,6,1]news_ids=[]foridinids:ifidnotinnews_ids:news_ids.append(id)printnews_ids这样也可行,但是看起来不够爽。用se
系统 2019-09-27 17:56:46 2328
python元组(tuple)Python的元组和列表类似,不同之处在于元组中的元素不能修改(因此元组又称为只读列表),且元组使用小括号而列表使用中括号;1、元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义;2、元组中的元素值使不允许修改的,但可以对元组进行连接组合;3、元组中的元素是不允许删除的,但可以使用del语句来删除整个元组;4、元组之间可以使用+和*,即允许元组进行组合连接和重复复制,运算后会生成一个新的元组tu=((2,2),(3,3)
系统 2019-09-27 17:52:35 2328
其实OpenCV已经提供了写视频的接口,但是编码和文件后缀的对应真是让人头疼,动不动就不支持。经过尝试,总结出目前两种可以正常写入视频的对应关系:MJPG-->.avimp4v-->.mp4一、编码MJPG、后缀.aviMJPG是大写!!!#coding=utf-8from__future__importabsolute_import,division,print_functionimportcv2importwarningsimportnumpyasnp
系统 2019-09-27 17:50:18 2328
在python调用c#dll库时要先安装库clr,即安装pythonnet,参考文章:https://www.cnblogs.com/kevin-Y/p/10235125.html(为在python中使用dotnet程序安装clr)但是输入命令后遇到错误“'pip'不是内部或外部命令,也不是可运行的程序”,解决办法:https://blog.csdn.net/miss85246/article/details/81069276,将python路径下的Scr
系统 2019-09-27 17:47:00 2328
这个语法是用来代替传统的try...finally语法的。复制代码代码如下:withEXPRESSION[asVARIABLE]WITH-BLOCK基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。复制代码代
系统 2019-09-27 17:46:15 2328
一、装饰函数(1)概念:装饰器本质上是一个Python函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码到装饰器中并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。使用方法:先定义一个装饰器(帽子)再定
系统 2019-09-27 17:55:30 2327
目录0引言1环境2需求分析3代码实现4后记0引言前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)玩Snake(贪吃蛇),那再合适不过了先通过下面这个效果图来感受下吧!1环境操作系统:WindowsPython版本:3.7.32需求分析我们先来回顾下贪吃蛇中的游戏元素及游戏规则。首先呢,需要有贪吃蛇、有食物;需要能控制贪吃蛇来上下移动获取食物;贪吃蛇在吃取食物后,自身长度增
系统 2019-09-27 17:55:04 2327
需要ping一个网段所有机器的在线情况,shell脚步运行时间太长,用python写个多线程ping吧,代码如下:#!/usr/bin/python#coding=utf-8'''Createdon2015-8-4@author:Administrator'''importthreading,subprocessfromtimeimportctime,sleep,timeimportQueuequeue=Queue.Queue()classThreadUr
系统 2019-09-27 17:38:35 2326
前面介绍的scrapy爬虫只能爬取单个网页。如果我们想爬取多个网页。比如网上的小说该如何如何操作呢。比如下面的这样的结构。是小说的第一篇。可以点击返回目录还是下一页对应的网页代码:我们再看进入后面章节的网页,可以看到增加了上一页对应的网页代码:通过对比上面的网页代码可以看到.上一页,目录,下一页的网页代码都在下的元素的href里面。不同的是第一章只有2个元素,从二章开始就有3个元素。因此我们可以通过下元素的个数来判决是否含有上一页和下一页的页面。代码如下最
系统 2019-09-27 17:53:35 2325
一,前言入职数据分析以后,肯定要涉及到python处理excle,特别是涉及到对excle的一些重复操作时,也许能提升一些效率;因此,有必要对python操作excle进行学习。现有操作excle的工具包有很多,例如xlrd&xlwt&xlutils以及强大的pandas,此外还有别的工具包,但受限于平台或者安装方式,都没有以上两种常用。(其中,pandas不仅是用来操作excle,而是一整套强大的工具包。)知乎有一篇文章些不同python包操作excle
系统 2019-09-27 17:53:26 2325
所有代码都是网上百度出来的,通过个人实践找到适合自己的。采用的python库是pymouse、pykeyboard安装时直接pip安装的,pipinstallPyUserInput安装不成功的可以参照http://www.lfd.uci.edu/~gohlke/pythonlibs/这个地址,内容很全实现了一个最简单的输入密码,enter进入的登录过程如果想遍历,可以使用itertools包,很有用,具体用法这里不介绍了。・鼠标点击有m.click(x,y
系统 2019-09-27 17:51:04 2325
一、Python函数中的参数1、使用python的函数时,有参数类别,比如位置参数、关键字参数、可变长参数2、位置参数、关键字参数很好理解,关键是可变长参数经常能见到,但是一直没有搞懂是什么意思二、可变长参数1、一个星号:函数可以接收任意个数的参数,只需要在形参前面加一个*(星号),一个星号形参的函数会把多个位置参数值当成元祖的形式传入,也就是传入的多个参数值可以在函数内部进行元祖遍历deflength_param(a,*args):print("a=",
系统 2019-09-27 17:45:33 2325