爬虫实战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)将参考字体与验证码每个字体比对,计算它们的距离,计算方式为每个像素的色彩差之和。
(二)在线人工服务
将图片发送到注册的在线服务,由它们人工判别并返回。
- 爬虫实战10—日志、守护线程以及验证码处理
- python爬虫进阶(十):日志系统、守护线程以及验证码处理
- python爬虫-->验证码处理
- [python爬虫]爬取学校教务处以及登录过程验证码的处理
- 【Python爬虫7】验证码处理
- 爬虫之处理简单验证码
- 爬虫实战---python图片验证码破解,PIL和安装
- clojure实战——日志处理
- log4j日志处理实战
- Java——守护线程
- 守护线程、守护进程
- 守护线程
- 守护线程
- 守护线程
- 守护线程
- 守护线程
- 守护线程
- 守护线程
- vb.net 教程 12-6 webbrowser 文本编辑器 1
- ActiveMQ Master/Slave 集群配置
- 事件流中的事件冒泡
- 全文检索之sphinx源码分析--检索流程
- 【DP】一共有多少种走法
- 爬虫实战10—日志、守护线程以及验证码处理
- Qt Widgets
- org.hibernate.StaleStateException
- Cannot assign a device to node
- 51nod 1137 矩阵乘法
- magent编译报错error: event.h: No such file or directory
- Linux驱动中的platform总线分析
- 二分查找(模板)
- C中变量的声明与定义