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

一、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—日志、守护线程以及验证码处理相关推荐

  1. 3 - 线程 - Windows 10 - Python - 守护线程 / 后台线程 / 精灵线程

    目录 一.守护线程 / 后台线程 / 精灵线程 二.创建精灵线程的方法 参考链接 测试环境: 操作系统: Window 10 工具:Pycharm Python: 3.7 一.守护线程 / 后台线程 ...

  2. Python网络爬虫实战10:爬取中关村在线首页“今日焦点”的头条新闻列表

    目录 1.  网页源码 2.  代码实例 3.  运行结果 1.  网页源码 2.  代码实例 # coding:utf8 from bs4 import BeautifulSoup import r ...

  3. 额!Java中用户线程和守护线程区别这么大?

    作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 在 Java 语言中线程分为两类:用户线程和守护线程,而二者之间的区别却鲜有人知, ...

  4. python多线程threading之阻塞线程(join)线程同步和守护线程(setDaemon(True))实例详解

    一.多线程(主线程和子线程同时执行) 1.主线程是程序本身,看不到的,主线程和子线程没有依赖关系,同步执行的,若主线程先执行完,会等子线程执行完毕,程序结束 2.启动一个线程就是把一个函数传入并创建T ...

  5. Python3 爬虫实战 — 模拟登陆12306【点触验证码对抗】

    登陆时间:2019-10-21 实现难度:★★★☆☆☆ 请求链接:https://kyfw.12306.cn/otn/resources/login.html 实现目标:模拟登陆中国铁路12306,攻 ...

  6. Python3 爬虫实战 — 模拟登陆哔哩哔哩【滑动验证码对抗】

    登陆时间:2019-10-21 实现难度:★★★☆☆☆ 请求链接:https://passport.bilibili.com/login 实现目标:模拟登陆哔哩哔哩,攻克滑动验证码 涉及知识:滑动验证 ...

  7. 10个Python爬虫实战项目

    Python爬虫是指使用Python语言编写程序,自动化地从互联网上获取数据并进行处理和分析的技术.Python爬虫是一项复杂而且实用的技术,需要掌握多个方面的基础知识,并具备较强的编程能力和实际操作 ...

  8. 线程,协程对比和Python爬虫实战说明

    此文首发于我的个人博客:线程,协程对比和Python爬虫实战说明 - zhang0peter的个人博客 这篇文章写的是我对线程和协程的理解,有错误之处欢迎指出. 举一个餐馆的例子.我们把一个餐厅当做一 ...

  9. Java多线程系列--“基础篇”10之 线程优先级和守护线程

    概要 本章,会对守护线程和线程优先级进行介绍.涉及到的内容包括: 1. 线程优先级的介绍 2. 线程优先级的示例 3. 守护线程的示例 转载请注明出处:http://www.cnblogs.com/s ...

最新文章

  1. 爬取CSDN最新月份所写的文章的最高阅读量文章(以及统计整个月所写的文章的阅读量的累积和)
  2. 自学架构设计的一个好方法
  3. 对超长的文字换行处理:程序和CSS样式
  4. 面向对象、继承、多态、封装、匿名内部类的基本知识点复习总结
  5. rabbitmq基于http的认证和授权
  6. mssql日志处理事务日志处理
  7. 网络规划设计师教程知识点精讲之计算机网络汇总
  8. win10 LTSC 2019 激活
  9. Python 爬取豆瓣影片短评 生成词云统计
  10. python识别屏幕内容_python之屏幕抓取
  11. swiper的基本使用
  12. AutoJs学习-MC我的世界自动钓鱼
  13. excel2016 for mac 二维表转一维表
  14. 非线性控制2.0——模糊逼近
  15. arcgis数据的M/Z值设置问题
  16. Matlab ——旋转矩阵,四元数,欧拉角之间的转换
  17. 计算机英语 译文,计算机英语参考译文
  18. 长高不仅靠遗传,让孩子再次长高的秘诀都在这
  19. nginx 502 Bad Gateway解决办法
  20. 修改本地Git用户名、密码

热门文章

  1. Portainer的下载与安装
  2. 以下为linux下64位c,64位ntohl()在C?
  3. 【Redis】Redis慢查询
  4. c++中关于ceil向上取整和floor向下取整,‘/‘除法对整型的处理(详解)
  5. 维特根斯坦思想概述南京大学陈亚军
  6. Android开发 - PsyDuck说明书
  7. Codeforces 757F: Team Rocket Rises Again(支配树)
  8. 入门系列之改进小波阈值降噪
  9. 【日常】pytorch编写“自创”的MRR损失函数
  10. strrchr()函数