编程大实践 登录爬虫 #Python #嵩天 #Cilay

登陆爬虫

一、项目背景

1.网络爬虫

网络爬虫,也叫网络蜘蛛,是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引。

网络爬虫可以将自己所访问的页面保存下来,以便搜索引擎事后生成索引供用户搜索。 爬虫访问网站的过程会消耗目标系统资源。不少网络系统并不默许爬虫工作。因此在访问大量页面时,爬虫需要考虑到规划、负载,还需要讲“礼貌”。 不愿意被爬虫访问、被爬虫主人知晓的公开站点可以使用robots.txt文件之类的方法避免访问。这个文件可以要求机器人只对网站的一部分进行索引,或完全不作处理。

互联网上的页面极多,即使是最大的爬虫系统也无法做出完整的索引。因此在公元2000年之前的万维网出现初期,搜索引擎经常找不到多少相关结果。现在的搜索引擎在这方面已经进步很多,能够即刻给出高质量结果。

爬虫还可以验证超链接和HTML代码,用于网络抓取。

2.常见验证方式

  • 随机数字图片验证码

  • 滑动拼图验证

  • 手机验证码验证

  • 邮箱手机组合验证

3.通用验证码识别

在爬虫过程中,大多我们都会碰到验证码识别,它是常用的一种反爬手段,包括:滑块验证码,图片验证码,算术验证码,点击验证码,所讲的图片验证码是较简单的,推荐一款强大验证码识别工具ddddocr

项目地址:https://github.com/sml2h3/ddddocr

# 安装命令
pip install ddddocr

# 使用方法
import ddddocr
ocr = ddddocr.DdddOcr()
with open("test.jpg", 'rb') as f:
    image = f.read()
res = ocr.classification(image)
print(res)

二、项目目标

1.主要目标

成功登陆三个测试网站:

2.目标分解

https://login2.scrape.center/ 是一个没有验证码的网站, 我们只需要输入用户名和密码即可

Scrape | Captcha 是一个有图片验证码的网站, 我们可以使用 OCR 来识别图片验证码

Scrape | Captcha 是一个有文字点选验证码的网站, 同样可以使用 OCR 来判断各个文字是否一样, 出现识别文字不一样的情况可以比较文字相似度

三、技术选型

1.问题:如何模拟登陆网站?

Selenium 是一个用于Web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。

Playwright 是针对 Python 语言的纯自动化工具,它可以通过单个API自动执行 Chromium,Firefox 和 WebKit 浏览器,连代码都不用写,就能实现自动化功能。

2.问题:如何安装浏览器驱动?

首先查看浏览器版本,然后前往官网下载对应最近的版本驱动,将浏览器驱动解压缩后,exe文件直接放到python根目录下,网上有些教程是将驱动程序的路径写到path中去,这样也可以但并不推荐,因为python中调用驱动默认是在python根目录下,如果在其它路径,每次调用还需要将驱动所在的路径写上。

四、课堂要求

1.提交项目结构

captcha3.py         https://captcha3.scrape.center/ 登陆源码
captcha8.py         https://captcha8.scrape.center/ 登陆源码
login2.py           https://login2.scrape.center/ 登陆源码
README.md						项目描述说明文档
requirements.txt		项目依赖包版本号(项目需要下载到本地执行,如果有第三方依赖包,必须填写)

2.标注核心算法函数位置

# 登陆程序 位于captcha3.py文件 第14行

def login():
  	"""登陆程序"""
		pass
# 登陆程序 位于captcha8.py文件 第17行

def login():
  	"""登陆程序"""
		pass
# 登陆程序 位于login2.py文件 第12行

def login():
  	"""登陆程序"""
		pass

3.程序运行效果截图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值