破解geetest的拖动验证码
最近有个项目需要爬取“国家企业信用信息公示系统”的数据,在该网站点击搜索按钮时,会弹出极验(geetest)的拖动式验证码。 遂一番google之,发现果然有哥们已经破解了这套验证码系统,甚至放出源码来了。学以致用。 原理很简单,首先定位缺口的位置,然后驱 […]
最近有个项目需要爬取“国家企业信用信息公示系统”的数据,在该网站点击搜索按钮时,会弹出极验(geetest)的拖动式验证码。 遂一番google之,发现果然有哥们已经破解了这套验证码系统,甚至放出源码来了。学以致用。 原理很简单,首先定位缺口的位置,然后驱 […]
今天发现爬虫脚本的一个问题:“直接在shell下运行的话,爬SIPO网站的数据得到的是中文;但是在crontab中启动的脚本爬出来的数据却是英文。”想了好半天,怀疑是环境的问题,然后一查,果然有好多人提到。原来crontab的环境变量跟用户的环境变量是不一 […]
一、关于python的装饰器 python装饰器的形式有点像java的注解、用处有点像java的切面。可以简单的理解为一个函数如果被装饰器注解了,那么在运行该函数之前,会先调用装饰器函数。 具体的参考如下两篇文章: https://www.zhihu.co […]
验证码破解是做爬虫经常要面对的问题。对于一般字符串或者算式的验证码,可以使用网页截图,然后OCR识别的方式来识别出验证码字符串来。 网页截图可以使用selenium的save_screenshot()方法; 用PIL图像处理库来截取验证码图片; 用Tess […]
最近做了个爬虫需要用到代理ip,然后想去快代理上爬点代理ip下来用。 结果使用urllib2访问http://www.kuaidaili.com/proxylist/1时候发现总是返回521错误。 使用HTTPError的read方法可以打印出HTTP的返 […]
1. 基本问题 假设项目的用户信息包括用户积分,现在需求是给用户增加积分。在Service层有一个方法addCredits负责执行增加积分的操作。 @Override @Transactional("fproxy") public vo […]
这两天又捡起来老司机的web端代码,需要增加一些新的功能,比如说充值卡(PrepaidCard)模块。在写Dao层的时候发现好麻烦呀,每个实体类都要写一个对应的Dao(还包括接口跟实现),而大部分Dao方法都是基本的增删查改操作(CRUD)。比如getBy […]
laravel默认是使用file做cache驱动的,但file与database驱动的cache无法支持tag,这就与我用到的entrust插件冲突了,所以改成了array作为cache系统的驱动。 后来想用throttle中间件的时候,发现throttl […]
首先得强调一下调试前端javascript的基本命令:console.log(obj),用来在浏览器控制台输出对象。其实除了console.log,还有各种console.error、console.warn、console.info、console.as […]