Python网络爬虫实战——实验3:Python爬虫之文字验证码实战

【实验内容】

本实验主要介绍在网络爬虫数据采集的过程中出现的常见的验证码反爬手段以及解决措施。

【实验目的】

1、理解验证码反爬的背景;
2、掌握常见文字验证码反爬手段;
3、研究解决文字验证码反爬的方法;

【实验步骤】

步骤1 调研目标网站
步骤2使用验证码识别技术
步骤3 采集数据生成json文件

步骤1:调研目标网站
以江西政府采购网站(http://www.ccgp-jiangxi.gov.cn/web/)为例,当我们点击搜索按钮的时候,会弹出如下的验证码进行验证,用户需要输入对应正确的验证码才能获取数据。在这里插入图片描述/===============================================================================================================================================/在这里插入图片描述 选择network的all,重新点击搜索框发起请求,可以看到如下请求接口正好是返回了图片的链接。在这里插入图片描述因此,只需要对此接口发起请求就能得到图片下载地址,然后在对图片地址发起请求就能将图片下载到本地。在这里插入图片描述/========================================================/在这里插入图片描述请求链接地址如下。
在这里插入图片描述请求携带参数如下。在这里插入图片描述步骤2使用验证码识别技术
(1) 购买服务
常见的验证码识别技术有机器学习模型或第三方验证码识别服务,为了方便使用本次实验以百度云为例。
你首先需要按照提示注册一个百度云账号,然后在产品服务中搜索文字识别
-************************************************************************

进入控制台后,点击应用列表,购买响应的服务,购买成功后如下图所示。
-*************************************************************************

(2) 识别验证码
下载安装包,pip install baidu-aip,详情可见官方文档https://cloud.baidu.com/doc/OCR/s/wkibizyjk。
在这里插入图片描述如下代码首先对图片发起请求,并将其下载到本地,然后使用baidu_client对象对图片文字进行识别,如果识别成功,则返回对应的验证码,否则捕获异常进行重新识别。
-******************************************************

步骤3 采集数据生成json文件
在这里插入图片描述-/====================================================================================================/
-*******************************************************************
获取子页面数据,部分代码如下所示:
-*******************************************************************
解析子页面数据,部分代码如下所示,使用xpath语法与re正则获取发布时间与项目编号。
-*************************************************************
/=================================================================================================/
-*************************************************************
保存的部分json文件如下图所示。
-***************************************************************

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode —— 43. 字符串相乘

😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️…

延伸与应用(五)企业家、网络经济,犯罪经济学、医疗保障经济学、资源经济

65.企业家与企业家精神 企 业 家 精 神 ( entrepreneurship ) 一 词 , 源 于 法 文 的 企 业 家(entrepreneur)这个单词。之后,经济学家不断地发现,其实企业家所代表的打拼与创新的精…

CCF CSP 202312-1仓库规划

题目描述 样例 输入 4 2 0 0 -1 -1 1 2 0 -1 输出 3 1 0 3 基本思路 暴力求解,使用二维数组存储所有仓库信息;针对每个仓库,遍历其他所有的仓库查找满足条件的上级仓库,有就输出查找到的第一个仓库编码,没有就输出…

redis—Zset有序集合

目录 前言 1.常见命令 2.使用场景 3.渐进式遍历 4.数据库管理 前言 有序集合相对于字符串、列表、哈希、集合来说会有一-些陌生。它保留了集合不能有重复成员的 特点,但与集合不同的是,有序集合中的每个元素都有-个唯- -的浮 点类型的分数(score) …

OJAC近屿智能张立赛博士揭秘GPT Store:技术创新、商业模式与未来趋势

Look!👀我们的大模型商业化落地产品📖更多AI资讯请👉🏾关注Free三天集训营助教在线为您火热答疑👩🏼‍🏫 亲爱的伙伴们: 1月31日晚上8:30,由哈尔滨工业大学的…

使用PowerBI 基于Adventure Works案例分析

Adventure Works案例分析 前言 数据时代来临,但一个人要顺应时代的发展是真理。 数据分析的核心要素 那数分到底是什么? 显然DT 并不等同于 IT,我们需要的不仅仅是更快的服务器、更多的数据、更好用的工具。这些都是重要的组成部分&…

JavaWeb后端登录校验功能(JWT令牌技术,Cookie技术,Session,拦截技术,过滤器)

目录 一.登录校验功能(解决直接通过路径访问) 1.实现思路 二.会话技术 ​编辑 1.Cookie技术 2.Session 3.令牌技术 1.简介 2.如何生成和解析 3.令牌的使用 三.Filter过滤器 1.什么是过滤器 2.实现步骤: 3.过滤器执行流程 4.拦截路径 5.过…

可视化大屏何必亲自上手,不懂代码不懂设计项目照样干

hello家人们...本人熟悉PS、Xd、Ai、Sketch、Figma、墨刀、即时设计、mastergo、Pixso等行业设计软件以及前端开发等技能,拥有10年的UI经验,我们可以通过关注评论私信交流以帮助到您解决UI工作中的烦恼!谢谢 可视化大屏何必亲自上手&#xff…

string的基本概念及常用接口

string的基本概念 本质: string时C风格的字符串,而string本质上是一个类。 string和char*的区别: char*是一个字符指针。而string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。 特…

【C++】类和对象(一)

前言:在前面我们带大家初步步入了C,让大家大概知道了他的样子,那今天就可以说我们要正式步入C的大门了,这一章内容的细节比较多各位学习的时候一定要仔细。 💖 博主CSDN主页:卫卫卫的个人主页 💞 &#x1f…

【amis低代码前端框架】vue2集成百度低代码前端框架amis

什么是amis:amis 是一个低代码前端框架,它使用 JSON 配置来生成页面,可以减少页面开发工作量,极大提升效率。 第一步:下载amis 命令行内执行以下命令下载安装amis npm i amis第二步:下载完毕amis后 将nod…

Habitat环境学习一:导航任务概述

导航任务 概述: Agent需要导航到环境中的指定位置,而该位置可以由特定的目标形式指定。 PointGoal Navigation:导航到环境中相对于初始位置特定的点; Object Navigation:Agent需要在环境中找到特定的物体&#xff1…

快递堆成山怎么办?快递管理系统来啦~

大型企业中每天都有数不清的快递往来,一线行政、财务、采购和后勤人员经常就快递问题大倒苦水: 员工寄件收件用花名、昵称,人员和快递很难对应; 前台一个个手动通知员工取件,还是会错拿忘拿; 员工私件公寄、…

[Grafana]ES数据源Alert告警发送

简单的记录一下使用es作为数据源,如何在发送告警是带上相关字段 目录 前言 一、邮件配置 二、配置 1.Query 2.Alerts 总结 前言 ES作为数据源,算是Grafana中比较常见的,Alerts告警是我近期刚接触,有一个需求是当表空间大于…

【Linux操作系统】:Linux开发工具编辑器vim

目录 Linux 软件包管理器 yum 什么是软件包 注意事项 查看软件包 如何安装软件 如何卸载软件 Linux 开发工具 Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 插入模式 插入模式切换为命令模式 移动光标 删除文字 复制 替换 撤销 跳至指…

方法、数组

方法 是语句的集合,在一起执行一个功能 它是解决一类问题的步骤的有序集合 包含于类或对象中 在程序中创建,在其他地方被引用 设计方法的原则:方法的本意是功能块,就是实现某一个功能的语句块的集合。设计时,最好保持…

Sketch 99.5中文 优秀的网站和移动应用设计软件

Sketch for mac用于数字世界的图形设计。在一个屡获殊荣的软件包中提供强大的工具和优雅的界面。因为做美丽的事情应该是一种快乐,而不是负担。 软件下载:Sketch 99.5中文激活版下载 Sketch支持每层多个填充,边框和阴影;具有强大的…

Codeforces Round 799 (Div. 4)

目录 A. Marathon B. All Distinct C. Where’s the Bishop? D. The Clock E. Binary Deque F. 3SUM G. 2^Sort H. Gambling A. Marathon 直接模拟 void solve() {int ans0;for(int i1;i<4;i) {cin>>a[i];if(i>1&&a[i]>a[1]) ans;}cout<&l…

7.【SpringBoot3】项目部署、属性配置、多环境开发

文章目录 1. SpringBoot 项目部署2. 属性配置方式2.1 通过 cmd 命令行配置2.2 通过环境变量配置2.3 通过外部配置文件来配置 3. 多环境开发 Profiles3.1 多环境开发的单文件配置3.2 多环境开发的多文件配置3.3 多环境开发-分组 1. SpringBoot 项目部署 项目完成后&#xff0c;…

Doris简介及单机部署(超详细)

文章目录 一、Doris简介1、Doris介绍2、Doris架构 二、Doris单机部署&#xff08;Centos7.9&#xff09;1、下载Doris2、准备环境3、安装部署3.1 创建存储目录3.2 配置 FE3.3 启动 FE3.4 查看 FE 运行状态3.5 配置 BE3.6 启动 BE3.7 添加 BE 节点到集群3.8 查看 BE 运行状态3.9…
最新文章