首页
学习
活动
专区
工具
TVP
发布

使用Python实现批量注册网站用户

第一时间获取 Python 技术干货!

阅读文本大概需要 5 分钟。

场景目标

现在大多数网站的「用户注册功能」都需要用户正确输入了验证码,才能发起注册的请求,如果想大量注册用户,正确识别验证码变的很关键。

普通的验证码使用 tesserocr,加上训练可以完成,如果想简单一点,可以使用「百度云的文字识别 API」。

今天的目标是使用 selenium + 百度云OCR 批量注册「中知网」一批用户。

准备功能

首先,在当前虚拟环境下配置好 Selenium 的环境,并且安装了 pillow 库。

在 百度云-文字识别 功能下创建一个应用,获取到「中知网AppID、API Key、Secret Key」,并按照 API 说明文档,新建一个类来初始化百度云 OCR 对象。

分析思路

我们打开中国知网的注册页面,检查验证码图片的元素,通过 src 属性可以知道验证码的请求地址是:

「http://my.cnki.net/elibregister/CheckCode.aspx」

每次刷新页面或者点击验证码图片,都会重新加载一次验证码。这里我们只能使用截取验证码区域保存到本地。

另外,截图验证码图片,需要使用「Phtotoshop」来获取验证码的左上角和右下角的坐标数据。

然后使用 Image 类的 crop() 函数截取验证码图片并保存到本地,接着可以调用百度云 OCR API 去识别验证码。

另外,由于验证码识别率有一定几率的失败,需要循环去填入验证码,然后点击外侧容器元素操作,直到验证码识别正确。

现在就可以通过 webdriver 获取到其他输入框元素,填充用户名、密码、邮箱地址,点击注册按钮,实现注册一个用户的功能。

多次循环上面的操作,就可以实现批量注册的需求。

我已经将全部源码上传到后台上,公众号回复「中知」即可获得。

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190124G0QAOJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券