爬虫模拟登陆手机验证码_爬虫处理验证码(模拟登陆微博)——使用超级鹰接口(爬虫小白学习日志2)...

238d69fe528dbb1cd99402bc1198db28.png

简介:

这篇文章是讲述如何使用打码软件处理登陆时的验证码(以微博举例),文章使用超级鹰api举例处理。

超级鹰介绍:

c5fcca30267ef0bb7db798cd40526560.png
图1

这个平台可以处理大部分类型的验证码,而且基本都是一次识别成功。

使用步骤:

1.首先注册用户id,然后参考开发文档,下载示例代码,或者直接下载我这里的代码也可以

链接:https://pan.baidu.com/s/1eqZ_lZm3hrWfM7nDj0-eCQ

提取码:kdjz

2.生成一个用来接入接口的软件ID,如下

cfd3e8d778a466e963d4352b89edff8e.png
图2

3.在爬虫中的使用范例

import chaojiying
a = chaojiying.Chaojiying_Client('','','')#填写用户名,填写密码,填写软件id
im = open('', 'rb').read()#图片的路径
code_info = a.PostPic(im, 1902)

code = code_info['pic_str'] #code即返回的验证码


接下来我们就以模拟登陆微博举例:

这个过程还有一个问题:

如何获取验证码?

这里有一个通用方法:思路是先在浏览器页面上截图后,再用Image处理截出验证码。

这里就需要确定验证码的位置的坐标。这里我们可以用屏幕坐标工具获得网页中验证码横坐标和纵坐标的范围,横坐标不变,纵坐标要减去浏览器上方边框的长度(如图3黑色长度),就得到了截图的范围。

屏幕坐标工具:

链接:https://pan.baidu.com/s/191BjQIjIwjcaTOyrSbwX6w

提取码:e2ih

54d264f98502979409463ebe1831e8ab.png
图3

最后得到的验证码大致是这样的,然后用超级鹰识别就可以了。

939b8c712c50ecdbc7344a6bc3cff906.png
图5

如何模拟登陆可以看看我的上一篇文章的分析前面的一部分

Russianjacker:爬虫小白学习日志(1) 使用selenium批量下载pdf,ppt(无验证码)

这里我就直接贴代码啦。

import scrapy
from selenium import webdriver
import time
from PIL import Image

class WeiboSpider(scrapy.Spider):
name = 'weibo'
allowed_domains = ['https://weibo.com/']
start_urls = ['https://weibo.com/']
def parse(self, response):
browser = webdriver.Chrome(executable_path="C:/Users/Mr JIE/Chromedriver2.33/chromedriver.exe")
browser.get('https://weibo.com')
time.sleep(15)
browser.maximize_window()
browser.find_elements_by_class_name("W_input")[1].send_keys("")#账号
time.sleep(3)
browser.find_elements_by_class_name("W_input")[2].send_keys("")#密码
time.sleep(3)
# 手动截图处理验证码
browser.get_screenshot_as_file('yzm.png')
yzm = Image.open('yzm.png')
# 这里屏幕纵坐标值都要减105才等于真实值
left = 1332
top = 228
right = 1460
bottom = 276
yzm = yzm.crop((left,top,right,bottom))#两个括号没错
yzm.save('yzm.png')
from ArticleSpider.common import chaojiying
a = chaojiying.Chaojiying_Client('','','')#填写用户名,填写密码,填写软件id
im = open('', 'rb').read()#图片的路径
code = a.PostPic(im, 1902)
browser.find_elements_by_class_name("W_input")[3].send_keys(code['pic_str'])
time.sleep(3)
browser.find_element_by_css_selector(".info_list.login_btn a[node-type='submitBtn']").click()
time.sleep(3000)
pass

899c7d2c4f2d0dc24b431380732bf0b0.png
附上一只可爱的三团

如果看完有帮助点个赞鸭,谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值