爬虫实战10—日志、守护线程以及验证码处理

来源:互联网 发布:java 字符串数组排序 编辑:程序博客网 时间:2024/06/12 22:49

文章说明:本文是在学习一个网络爬虫课程时所做笔记,文章如有不对的地方,欢迎指出,积极讨论。

一、Logger

日志:网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载这日期、时间、使用者及动作等相关操作的描述。日志数据对于实现网络安全的价值有多大取决于两个因素:第一,你的系统和设备必须进行合适的设置以便记录你需要的数据。第二,必须有合适的工具、培训和可用的资源来分析收集到的数据。
日志系统,任何一个后台服务所必需的系统。两个作用:监控和后期问题的跟踪。
(一)Log系统基本用途
1.多线程情况下,debug的调试非常困难 (唯一的办法就是加日志)
2.错误出现有一些随机性 (单独运行不能把错误呈现出)
3.性能分析
4.错误记录与分析 (特定的点进行记录)
5.运行状态的实时监测 (系统整个所有的相应)
(二)Log系统设计
1.错误级别:debug,info,warning,error,fatal  (根据实际需求,过滤日志)
2.日志的来源(通道):MySQL,connecton,threading,etc.   (1、2主要用来做过滤)
3.日志输出位置:file,console,database(设置输出在哪里)
(三)python日志系统
1.loggers:创建日志并指明文件   (设置不同打印日志的方式,配置文件。最顶层的配置环境)
2.handlers:处理器,配置过滤器、输出等
3.filters:配置过滤原则
4.formattes:配置输出的日志格式
logging.Filter:
控制过滤的规则,重写filter方法来进行过滤。构造函数的参数通过config来制定和传入。
二、Daemon
后台服务的基础的保证,当任何一个服务挂掉后,可以通过daemon系统把它重新拉起来。spider经常遇到crash或者halt等需要重启。启动启动自己的服务和监测新的服务。
下载并安装:
1.http://cr.yp.to/daemontools/install.html
2.安装:
Create a/package directory:  (根目录下创建一个package的目录)
#mkdir-p/package
#chmod 1755/package
#cd /package
Downloaddaemontools-0.76.tar.gz into /package. Unpack the package:
#wegt http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
#gunzipdaemontools-0.76.tar
#tar -xpfdaemontools-0.76.tar
#rm -fdaemontools-0.76.tar
通过编译安装
三、Tesseract-OCR   (验证码的识别)
CAPTCHA(Completely Automated Public Turing Test to Computers and Human Apart)全自动区分计算机和人类的图灵测试  识别机器人
(一)Pillow
python里面的一个图像处理包,包含了一个image类用来做图像的处理
安装:pip install pillow
(二)Tesseract-OCR
是一个Google主导的开源OCR(OpticalCharacter Recongnition)引擎。有很多python开源版本。
安装:pip installpytesseract
(三)识别过程
大量验证码都是添加了干扰因素的,例如 ,因此第一步要找出噪声并去掉。
(1)找出验证码的色彩,对色彩像素进行统计;
(2)去噪,把验证码色彩设置为黑色,其余设置为白色(灰度处理);
(3)调用TesseractOCR进行识别
word =pytesseract.image_to_string(img,lang=’eng’,config=’ocr.conf’)
lang:指定识别的语言
config:指定配置文件
这个的识别率并不是百分之百,因此可以刷新验证码再次识别,但刷新的频率不能过高。
四、图片相似度匹配

考虑这种类型的图片 ,用Tesseract-OCR完全不能识别,干扰信息太多,而且干扰笔画的色彩与验证码一样。仔细观察,这些字体都比较标准,可以考虑用图片相似度匹配的方式来识别。

(1)把所有的图片找出来,裁剪并拼接成如下的样子;


(2)把验证码图片中的文字部分剪裁出来;


(3)把验证码图片转化为黑白,设定一个阈值200,小于200的处理为白色;


(4)将参考字体与验证码每个字体比对,计算它们的距离,计算方式为每个像素的色彩差之和。
(二)在线人工服务
将图片发送到注册的在线服务,由它们人工判别并返回。


原创粉丝点击