反爬和反反爬

2023-11-20 21:20
文章标签 反反

本文主要是介绍反爬和反反爬,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python编程快速上手(持续更新中…)

python爬虫从入门到精通


文章目录

  • python编程快速上手(持续更新中…)
  • python爬虫从入门到精通
    • 概述
      • 1.服务器发爬的原因
      • 2 服务器常反什么样的爬虫
      • 3 反爬虫领域常见的一些概念
      • 4 反爬的三个方向
        • 基于身份识别进行反爬
        • 基于爬虫行为进行反爬
        • 基于数据加密进行反爬
    • 图形验证码处理
      • 1.图片验证码
        • 1.1 什么是图片验证码
        • 1.2 验证码的作用
        • 1.3 图片验证码在爬虫中的使用场景
        • 1.4 图片验证码的处理方案
      • 2.图片识别引擎
        • 2.1 什么是tesseract
        • 2.2 图片识别引擎环境的安装
        • 2.3 图片识别引擎的使用
        • 2.4 图片识别引擎的使用扩展
    • 3 打码平台
      • 1.为什么需要了解打码平台的使用
      • 2 常见的打码平台
      • 3 云打码的使用(已跑路)
        • 3.1 云打码官方接口

概述

1.服务器发爬的原因

爬虫占总PV(PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv)比例较高,这样浪费钱(尤其是三月份爬虫)。

公司可免费查询的资源被批量抓走,丧失竞争力,这样少赚钱。

爬虫在国内还是个擦边球,就是有可能可以起诉成功,也可能完全无效。所以还是需要用技术手段来做最后的保障。

2 服务器常反什么样的爬虫

应届毕业生
应届毕业生的爬虫通常简单粗暴,根本不管服务器压力,加上人数不可预测,很容易把站点弄挂。
创业小公司
现在的创业公司越来越多,也不知道是被谁忽悠的然后大家创业了发现不知道干什么好,觉得大数据比较热,就开始做大数据。分析程序全写差不多了,发现自己手头没有数据。怎么办?写爬虫爬啊。于是就有了不计其数的小爬虫,出于公司生死存亡的考虑,不断爬取数据。
不小心写错了没人去停止的失控小爬虫

有些网站已经做了相应的反爬,但是爬虫依然孜孜不倦地爬取。什么意思呢?就是说,他们根本爬不到任何数据,除了httpcode是200以外,一切都是不对的,可是爬虫依然不停止这个很可能就是一些托管在某些服务器上的小爬虫,已经无人认领了,依然在辛勤地工作着。

成型的商业对手
这个是最大的对手,他们有技术,有钱,要什么有什么,如果和你死磕,你就只能硬着头皮和他死磕。

抽风的搜索引擎
大家不要以为搜索引擎都是好人,他们也有抽风的时候,而且一抽风就会导致服务器性能下降,请求量跟网络攻击没什么区别。

3 反爬虫领域常见的一些概念

因为反爬虫暂时是个较新的领域,因此有些定义要自己下:

爬虫:使用任何技术手段,批量获取网站信息的一种方式。关键在于批量。
反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。关键也在于批量。
误伤:在反爬虫的过程中,错误的将普通用户识别为爬虫。误伤率高的反爬虫策略,效果再好也不能用。
拦截:成功地阻止爬虫访问。这里会有拦截率的概念。通常来说,拦截率越高的反爬虫策略,误伤的可能性就越高。因此需要做个权衡。
资源:机器成本与人力成本的总和。

这里要切记,人力成本也是资源,而且比机器更重要。因为,根据摩尔定律,机器越来越便宜。而根据IT行业的发展趋势,程序员工资越来越贵。因此,通常服务器反爬就是让爬虫工程师加班才是王道,机器成本并不是特别值钱。

4 反爬的三个方向

基于身份识别进行反爬

1.通过header字段身份反爬
在这里插入图片描述
2.通过请求参数反爬
在这里插入图片描述

基于爬虫行为进行反爬

1.基于请求频率和总请求数量
在这里插入图片描述

2.根据爬取行为进行反爬,通常爬虫步骤上分析
在这里插入图片描述
在这里插入图片描述

基于数据加密进行反爬

在这里插入图片描述

图形验证码处理

1.图片验证码

1.1 什么是图片验证码

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。

1.2 验证码的作用

防止恶意破解密码、刷票、论坛灌水、刷页。有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,实际上使用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),我们利用比较简易的方式实现了这个功能。虽然登录麻烦一点,但是对网友的密码安全来说这个功能还是很有必要,也很重要。

1.3 图片验证码在爬虫中的使用场景

注册
登录
频繁发送请求时,服务器弹出验证码进行验证

1.4 图片验证码的处理方案

手动输入(input)
这种方法仅限于登录一次就可持续使用的情况
图像识别引擎解析
使用光学识别引擎处理图片中的数据,目前常用于图片数据提取,较少用于验证码处理
打码平台
爬虫常用的验证码解决方案

2.图片识别引擎

OCR(Optical Character Recognition)是指使用扫描仪或数码相机对文本资料进行扫描成图像文件,然后对图像文件进行分析处理,自动识别获取文字信息及版面信息的软件。

2.1 什么是tesseract

Tesseract,一款由HP实验室开发由Google维护的开源OCR引擎,特点是开源,免费,支持多语言,多平台。
项目地址:https://github.com/tesseract-ocr/tesseract

2.2 图片识别引擎环境的安装

1 引擎的安装
mac环境下直接执行命令

brew install --with-training-tools tesseract

windows环境下的安装
可以通过exe安装包安装,下载地址可以从GitHub项目中的wiki找到。安装完成后记得将Tesseract 执行文件的目录加入到PATH中,方便后续调用。

1.下载安装64位的安装包
http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe,

2.配置环境变量
在这里插入图片描述
3.其他语言的识别包https://github.com/tesseract-ocr/tesseract/wiki/Data-Files。
简体字识别包:https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/chi_sim.traineddata
繁体字识别包:https://github.com/tesseract-ocr/tessdata/raw/4.0/chi_tra.traineddata

linux环境下的安装

sudo apt-get install tesseract-ocr

2 Python库的安装
PIL用于打开图片文件

pip install pillow

pytesseract模块用于从图片中解析数据
pip install pytesseract

简单使用cmd
进入图片路径
tesseract test.jpg result
在这里插入图片描述

2.3 图片识别引擎的使用

通过pytesseract模块的 image_to_string 方法就能将打开的图片文件中的数据提取成字符串数据,具体方法如下

#coding:utf-8
from PIL import Image
import pytesseract# cmd
# tesseract test.jpg result# im = Image.open('test.jp
im = Image.open('test.jpg')result = pytesseract.image_to_string(im)
print(result)

**异常:**Python tesseract is not installed or it’s not in your path
修改:tesseract_cmd路径

**注意:**反斜杠
在这里插入图片描述

2.4 图片识别引擎的使用扩展

tesseract简单使用与训练
其他ocr平台
微软Azure 图像识别:https://azure.microsoft.com/zh-cn/services/cognitive-services/computer-vision/
有道智云文字识别:http://aidemo.youdao.com/ocrdemo
阿里云图文识别:https://www.aliyun.com/product/cdi/
腾讯OCR文字识别:https://cloud.tencent.com/product/ocr

3 打码平台

1.为什么需要了解打码平台的使用

现在很多网站都会使用验证码来进行反爬,所以为了能够更好的获取数据,需要了解如何使用打码平台爬虫中的验证码

2 常见的打码平台

云打码:http://www.yundama.com/
能够解决通用的验证码识别
极验验证码智能识别辅助:http://jiyandoc.c2567.com/
能够解决复杂验证码的识别

3 云打码的使用(已跑路)

下面以云打码为例,了解打码平台如何使用

3.1 云打码官方接口

下面代码是云打码平台提供,做了个简单修改,实现了两个方法:
indetify:传入图片的响应二进制数即可
indetify_by_filepath:传入图片的路径即可识别

其中需要自己配置的地方是:
username = ‘whoarewe’ # 用户名

password = ‘***’ # 密码

appid = 4283 # appid

appkey = ‘02074c64f0d0bb9efb2df455537b01c3’ # appkey

codetype = 1004 # 验证码类型

云打码官方提供的api如下:
获取动态验证码(知乎)
https://www.zhihu.com/captcha.gif?r=%d&type=login

这篇关于反爬和反反爬的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/397517

相关文章

selenium反反爬虫,隐藏selenium特征

一、stealth.min.js 使用 用selenium爬网页时,常常碰到被检测到selenium ,会被服务器直接判定为非法访问,这个时候就可以用stealth.min.js 来隐藏selenium特征,达到绕过检测的目的 from selenium import webdriverfrom selenium.webdriver.chrome.options import Options

python爬虫反反爬之图片验证

文章目录 发现宝藏一、ddddOcr(针对图形验证码)1. 工具介绍2. 安装及环境支持3. 识别示例14. 识别示例2 二、Tesseract(标准OCR识别)1. 工具介绍2. 配置系统环境3. 识别示例14. 识别示例23. 识别示例3 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 一、ddddOcr(针对图

100天精通Python(实用脚本篇)——第117天:基于selenium实现反反爬策略之代码输入账号信息登录网站

文章目录 专栏导读1. 前言2. 实现步骤3. 基础补充4. 代码实战4.1 创建连接4.2 添加请求头伪装浏览器4.3 隐藏浏览器指纹4.4 最大化窗口4.5 启动网页4.6 点击密码登录4.7 输入账号密码4.8 点击登录按钮4.9 完整代码4.10 GIF动图展示 五、总结 专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进

网站常见的反爬手段及反反爬思路

摘要:介绍常见的反爬手段和反反爬思路,内容详细具体,明晰解释每一步,非常适合小白和初学者学习!!! 目录 一、明确几个概念 二、常见的反爬手段及反反爬思路 1、检测user-agent 2、ip 访问频率的限制  (1)代理的基本原理 (2)代理的作用 (3)爬虫代理 (4)代理分类 (5)常见代理设置 3、必须账号登录 4、动态网页,JavaScript 压缩、 混淆和加

100天精通Python(实用脚本篇)——第116天:基于selenium实现反反爬策略之添加cookie登录网站

文章目录 专栏导读1. cookie是什么?2. cookie登录网站的优点?3. 浏览器怎么查看cookie?4. 代码获取cookie5. 添加cookie登录网站 专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:ht

100天精通Python(实用脚本篇)——第115天:基于selenium实现反反爬策略之隐藏浏览器指纹特征

文章目录 专栏导读1. 什么是浏览器指纹?2. 爬虫隐藏浏览器指纹特征的好处?3. 手动打开浏览器指纹情况4. 无界面模式打开浏览器5. 脚本隐藏浏览器指纹特征 专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https:

【Python爬虫】8大模块md文档从0到scrapy高手,第8篇:反爬与反反爬和验证码处理

本文主要学习一下关于爬虫的相关前置知识和一些理论性的知识,通过本文我们能够知道什么是爬虫,都有那些分类,爬虫能干什么等,同时还会站在爬虫的角度复习一下http协议。 Python爬虫和Scrapy全套笔记直接地址: 请移步这里 共 8 章,37 子模块 反爬与反反爬 本阶段本文主要学习爬虫的反爬及应对方法。 常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原

2021/7/3爬虫第三十二次课(反反爬措施二之突破行为验证,opencv)

文章目录 一、图形验证码(实现上次的12306突破验证码)二、​opencv简单使用(这里用了其美化照片功能)三、行为验证四、拓展 一、图形验证码(实现上次的12306突破验证码) 12306图片验证码的实现​解决方案: selenium(鼠标行为链) + 打码平台​思路:通过selenium来加载登录页面,获取验证码图片。我就可以把验证码图片交给超级鹰打码平台进行处

【那些反爬与反反爬】网页中嵌入随机不可见字符的解决方法

关于部分网页p标签下嵌入随机不可见字符导致爬取的数据中包含大量无意义字符的解决办法: 示例网站:https://www.psychspace.com/psych/category-333 <p><span style="display:none"> H1zZ y&}%pBD iluo</span>剑桥大学发表的一项新的研究表明,父母和孩子之间的爱会显著增加孩子的<a href="∠psyc