12.验证码以及付费代理

文章目录

  • 一、验证码的处理
    • 1、验证码概述
      • 1、2 什么是图片验证码?
      • 1、2 验证码的作用
      • 1、3 图片验证码使用场景
      • 1、4 图片验证码的处理方案
    • 2、图片在网页页面中的形式
      • 2、1 如何进行图片形式的转化
    • 3、打码平台
  • 二、代理的使用
    • 2、1 付费代理
      • 2、1、1 找付费代理服务站点
      • 2、1、2 生成获取代理的api接口
      • 2、1、3 python请求接口
    • 2、2 免费代理

一、验证码的处理

1、验证码概述

1、2 什么是图片验证码?

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

1、2 验证码的作用

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

1、3 图片验证码使用场景

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

1、4 图片验证码的处理方案

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

对于验证码的处理, 我们今天主要学习通过打码平台去处理验证码

2、图片在网页页面中的形式

​ 图片在网页页面中的形式一般就两种:一种是以一个连接形式存在html中,另外一种是以字符串的形式存在于html中。

  • 以链接形式存在于html中的图片,意味着每次浏览器执行渲染的时候会发送图片链接地址请求,请求到了之后再渲染到页面。目前大部分网站都是以这种形式去加载图片的。之前我们也学习过通过获取图片的链接地址就可以请求图片数据。

    ​ 这样的形式存在于页面当中的图片,如果一旦页面图片很多的话,就意味着需要发送很多次网络请求,去请求图片数据。

  • 以字符串形式存在于html中的图片,和上述形式有明显的区别。这样形式的图片在html页面中是以字符串的形式去展示图片,而不是一个链接。

    ​ 这样的好处是加载页面的时候,不用发送网络请求去请求图片数据。因为我们在请求html页面的时候就已经拿到图片的字符串数据,浏览器只需要转换图片为二进制形式展示就可以了。

    ​ 有利也有弊,这样做虽然网络请求的次数少了,但是我们需要把图片转换成字符串形式才可以放到标签里面。如果图片数据过大,那么转换之后的字符长度就会很长。所以一般网页中字符串形式的图片都是数据量比较小的图片,比如验证码。

2、1 如何进行图片形式的转化

​ 前面我们讲了图片有两种形式,链接形式的图片我们通过requests发送请求就可以拿到图片的二进制数据,保存下来就可以用看图软件查看。这种形式的图片处理就不做赘述了。

​ 那么字符串的形式的图片我们应该如何处理呢?

​ 字符串形式的图片我们可以借助 base64 模块进行处理。

  • base64.b64decode()

    把字符串形式的图片转化为二进制的数据, 传入图片的字符串数据

  • base64.b64encode()

    把二进制形式的图片转化为字符串数据, 传入图片的二进制数据

3、打码平台

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

​ 相比于复杂繁琐的验证码破解,打码平台能够给你快速的解决方案。今天我们就通过验证码平台学习对接验证码平台识别验证码。

二、代理的使用

2、1 付费代理

2、1、1 找付费代理服务站点

  • 搜索代理ip,能够发现有很多付费代理服务站点

    ​ 目前付费代理站点一般注册后,会有免费的测试代理用量,学习阶段用免费的做测试就够用了。不过现在代理网站普遍都需要实名认证,也会有站点的工作人员联系你添加联系方式,额外也会送你一些ip测试。

用其他网站的代理服务也可以,使用方法大同小异

  • 手机号注册,登录后实名认证,即可到账免费测试金额
    *

2、1、2 生成获取代理的api接口

  • 根据情况自选选项,生成获取代理的api接口。

2、1、3 python请求接口

  • 请求接口示例

    import requestsdef get_ip():response = requests.get(url='http://tiqu.pyhttp.taolop.com/getip?count=1&neek=13873&type=2&yys=0&port=1&sb=&mr=2&sep=0&pack=7406')ip_json = response.json()# print(ip_json)proxy = ip_json['data'][0]['ip'] + ':' + str(ip_json['data'][0]['port'])# print(proxy)proxies = {"http": "http://" + proxy,"https": "http://" + proxy,}return proxies
    
  • 数据返回示例

    {'code': 0, 'data': [{'ip': '223.214.30.18', 'port': 64257}], 'msg': '0', 'success': True}
    

获取到代理ip后,即可在requests请求的时候,携带proxies关键字参数进行代理伪装的请求。

2、2 免费代理

​ 网络上有大量免费且公开的代理可以供我们使用,但这些单利并不能保证都可以使用,因为同样的代理可能被其他人拿来爬虫使用而遭到封禁,因此,在真正使用之前,我们需要对这些免费代理进行筛选,剔除那些不能使用的。保留下可以用的,来构建一个代理池,供我们爬虫使用。

​ 因此我们首先需要在网络中寻找免费的代理数据, 然后搭建一个代理服务去筛选可用的代理,通过链接接口的形式供爬虫项目去调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天锐绿盾加密软件——企业数据防泄密-CAD图纸、文档、源代码加密管理系统@德人合科技

天锐绿盾是一款专门为企业提供数据防泄密和文档加密管理的软件。该软件通过加密技术保护企业的核心数据,防止数据泄露和侵权行为,同时提供了全方位的文档加密管理系统,实现了对企业数据的安全保障和有效管理。 PC访问地址: isite…

睿趣科技:抖音店铺怎么取名受欢迎

抖音作为国内最大的短视频平台,其商业价值不容忽视。许多商家和创作者都在抖音上开设了自己的店铺,而一个富有创意和吸引力的店铺名字,往往能带来更多的客流量。那么,如何为抖音店铺取个好名字呢?以下是一些有用的建议。 明确定位…

【MATLAB源码-第44期】基于matlab的2*2MIMO-LDPC系统的误码率仿真。

操作环境: MATLAB 2022a 1、算法描述 2x2 MIMO(多输入多输出)和LDPC(低密度奇偶校验码)编码是在通信系统中常用的技术,它们通常用于提高无线通信系统的性能和可靠性。 1. 2x2 MIMO: 2x2 MIMO…

网络攻防备课笔记

从“踩点”到“创建后门”的攻击流程 踩点:攻击者在实施攻击前对目标进行初步的探索和调查的过程,包括收集目标的IP地址、开放的端口、服务版本、可能的漏洞等信息。 扫描:使用工具如Nmap、Masscan等对目标进行端口扫描,找出开放…

Spring Boot项目搭建流程

Spring Boot是一款基于Spring Framework的开源框架,用于快速构建独立的、可运行的、生产级的Spring应用程序。它通过自动化配置、减少样板代码和默认的项目结构,极大地简化了Spring应用程序的开发过程。本文将详细介绍Spring Boot项目搭建的流程。 一、…

CMakeLists编译前拷贝文件或目录

${CMAKE_CURRENT_BINARY_DIR} 编译工程目录 file(COPY python/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/python/ FILES_MATCHING PATTERN "*.exe") file(COPY python/Lib DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/python/) file(COPY python/Libs DESTINATION $…

Python 线性查找

线性查找指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 def search(arr,n,x):for i in range(0,n):if(arr[i]x):return ireturn -1 arr[A,B,C,D,E] xD nlen(arr) resultsearch(arr,n,x) if(result-1):print("元素不在数组中") els…

【RabbitMQ 实战】09 客户端连接集群生产和消费消息

一、部署一个三节点集群 下面的链接是最快最简单的一种集群部署方法 3分钟部署一个RabbitMQ集群 上的的例子中,没有映射端口,所以没法从宿主机外部连接容器,下面的yml文件中,暴露了端口。 每个容器应用都映射了宿主机的端口&…

【ES6 03】变量解构赋值

变量解构赋值 数组解构赋值1 基操2 默认值 对象的解构赋值默认值注意 字符串的解构赋值数值与布尔值的解构赋值函数参数的解构赋值圆括号不得使用 作用 数组解构赋值 1 基操 ES6允许按照一定的模式从数组和对象中提取值从而对变量进行赋值,也即解构(De…

Vscode进行远程开发

之前用的是pycharm,但是同事说pycharm太重了,连接远程服务器的时候给远程服务器的压力比较大,有时候远程服务器可能都扛不住,所以换成了vscode。 参考博客 手把手教你配置VS Code远程开发工具,工作效率提升N倍 - 知…

词云图大揭秘:如何从文本中挖掘热点词汇?

随着互联网的普及,大量的文本信息在网络上被产生和传播。如何从这些海量的文本中提取出有价值的信息,成为了人们关注的焦点。在这个信息爆炸的时代,词云图作为一种直观、形象的数据可视化手段,越来越受到人们的喜爱。本文手把手教…

设计模式 - 七大软件设计原则

目录 一、设计模式 1.1、软件设计原则 1.1.1、开闭原则 1.2.2、单一职责原则 1.2.3、里氏替换原则 1.2.4、迪米特原则 1.2.5、接口隔离原则 1.2.6、依赖倒转原则 1.2.7、合成/聚合复用原则 一、设计模式 1.1、软件设计原则 1.1.1、开闭原则 开闭原则:对扩…

双周赛114(模拟、枚举 + 哈希、DFS)

文章目录 双周赛114[2869. 收集元素的最少操作次数](https://leetcode.cn/problems/minimum-operations-to-collect-elements/)模拟 [2870. 使数组为空的最少操作次数](https://leetcode.cn/problems/minimum-number-of-operations-to-make-array-empty/)哈希 枚举 [2871. 将数…

LeetCode-503-下一个更大元素Ⅱ

题目描述: 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数&am…

Docker--harbor私有仓库部署与管理

目录 一、Harbor简介 1、什么是Harbor 2、Harbor的特性 3、Haebor的构成 二、搭建本地私有仓库 1、本地私有仓库创建 2、将镜像上传至本地私有仓库 三、搭建Harbor仓库 1. 部署 Docker-Compose 服务 2、部署 Harbor 服务 3、启动Harbor 4、创建一个新项目 5、在其他…

Docker 容器管理

容器概念 docker容器相当于一个进程,性能接近于原生,几乎没有损耗; docker容器在单台主机上支持的数量成百上千; 容器与容器之间相互隔离; 镜像是创建容器的基础,可以理解镜像为一个压缩包 容器管理 …

并发、并行、同步、异步、阻塞、非阻塞

一、多核、多cpu (一)多核 Multicore 核是CPU最重要的部分。负责运算。核包括控制单元、运算单元、寄存器等单元。 多核就是指单个CPU中有多个核。 (二)多cpu Multiprocessor 多cpu就是一个系统拥有多个CPU。每个CPU可能有单个核…

5种排序算法

文章目录 一,排序算法时间复杂度比较二,插入排序三,冒泡排序四,快速排序五,堆排序六,二分归并排序 一,排序算法时间复杂度比较 算法最坏情况下平均情况下插入排序O(n )O(n)冒泡排序O(n)O(n)快速…

北京股票开户的佣金手续费是多少?北京股票开户选择哪家券商?

北京股票开户的佣金手续费是多少?北京股票开户选择哪家券商? 股票注册开户是非常简单的,在2015年前也就是互联网还不发达的时候,投资者只能去券商的营业部柜台办理,而自从各大券商都可以网上开户后,更多的投资者会选择网上开户…

【运维】一些团队开发相关的软件安装。

gitlab 安装步骤 (1) 下载镜像,并且上传到服务器 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.2.8-ce.0.el7.x86_64.rpm (2)rpm -i gitlab-ce-16.2.8-ce.0.el7.x86_64.rpm (3)安装成功后…