你是不是要经常输入验证码?
登录网站时输完密码,
要输入一个单词或者几个歪歪扭扭不怎么好辨认的字母,
这个场景一定不陌生?
有没有思考为什么要输入验证码?验证码有什么作用?
本文仅作案例分析
Python 3.8
Pycharm 2021.2
谷歌浏览器
谷歌驱动
selenium >>> pip install selenium==3.141.0 指定版本安装
time
打码平台
导入模块
from selenium import webdriver
from password import VideoAccount, VideoPassword, account, password
import time
from chaojiying import Chaojiying_Client
from selenium.webdriver import ActionChains
###无偿领python源码籽料qun:9039,71231(去掉逗号就行)
1. 打开浏览器
executable_path=“chromedriver” 驱动路径
TIPS
:如何下载谷歌浏览器驱动
https://registry.npmmirror.com/binary.html?path=chromedriver/
选择和你浏览器版本最相近的 <大版本一样, 小版本最相近的就可以了>
驱动放在哪里
和代码放在一起
放在python安装目录里面
driver = webdriver.Chrome(executable_path=r'D:\download\anaconda\chromedriver.exe')
2. 输入/访问B站网站
1.先通过元素定位 登陆按钮在什么地方
2.定位到之后, 在进行操作<点击操作>
3.通过css选择器查找元素 --> 复制粘贴
4.输入账号 / 输入密码
1.先通过元素定位 账号输入框在什么地方
2.先通过元素定位 密码输入框在什么地方
3.然后再进行账号密码输入操作
5.点击登陆按钮
1.先通过元素定位 登陆在什么地方
2.然后再进行点击操作
driver.find_element_by_css_selector('.bili-header .header-login-entry').click()
time.sleep(1)
driver.find_element_by_css_selector('div.bili-mini-account input').send_keys(VideoAccount)
driver.find_element_by_css_selector('div.bili-mini-password input').send_keys(VideoPassword)
time.sleep(1)
driver.find_element_by_css_selector('div.bili-mini-login-register-wrapper .login-btn').click()
time.sleep(2)
无偿领python源码籽料qun:9039,71231(去掉逗号就行)
1.获取验证码图片
img_label = driver.find_element_by_css_selector('.geetest_holder.geetest_silver')
2.截图保存
img_label.screenshot('yzm.png')
3.调用超级鹰打码平台
chaojiying = Chaojiying_Client(account, password, '96001') #用户中心>>软件ID 生成一个替换 96001
4.读取验证码图片
im = open('yzm.png', 'rb').read()
pic_str = chaojiying.PostPic(im, 9004)['pic_str']
9004 表示验证码类型 42,241|42,241|59,86|144,115
for循环遍历, 把坐标一个一个取出来
for index in pic_str.split('|'):
x = index.split(',')[0]
y = index.split(',')[1]
# move_to_element_with_offset 在验证码上面进行点击操作
###无偿领python源码籽料qun:9039,71231(去掉逗号就行) ActionChains(driver).move_to_element_with_offset(img_label, int(x), int(y)).click().perform()
time.sleep(1)
driver.find_element_by_css_selector('.geetest_commit_tip').click()
获取账号cookie, 自动发送直播弹幕机器人~ <切换账号>
自动发送弹幕
1. 为了防止机器冒充人类做暴力破解
2. 防止大规模在线注册滥用服务
3. 防止滥用在线批量化操作
4. 防止自动发布
5. 防止信息被大量采集聚合