话不多说,今天就分享一下如何用Python实现点选验证码识别,小破站模拟登陆
1.win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
2.在pycharm中点击Terminal(终端) 输入安装命令
失败一: pip 不是内部命令
解决方法: 设置环境变量
失败二: 出现大量报红 (read time out)
解决方法: 因为是网络链接超时, 需要切换镜像源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名
失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入
解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好
或者你pycharm里面python解释器没有设置好
源码.点击领取即可
from selenium import webdriver
from password import VideoAccount, VideoPassword, account, password
import time
from chaojiying import Chaojiying_Client
from selenium.webdriver import ActionChains
executable_path="chromedriver" 驱动路径
如何下载谷歌浏览器驱动
和代码放在一起
放在python安装目录里面
driver = webdriver.Chrome(executable_path=r'D:\download\anaconda\chromedriver.exe')
driver.get('https://***自己输入吧我放不了/')
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)
img_label = driver.find_element_by_css_selector('.geetest_holder.geetest_silver')
img_label.screenshot('yzm.png')
chaojiying = Chaojiying_Client(account, password, '96001') #用户中心>>软件ID 生成一个替换 96001
im = open('yzm.png', 'rb').read()
9004 表示验证码类型 42,241|42,241|59,86|144,115
pic_str = chaojiying.PostPic(im, 9004)['pic_str']
python学习交流Q群:770699889 ### 源码领取
for index in pic_str.split('|'):
x = index.split(',')[0]
y = index.split(',')[1]
move_to_element_with_offset 在验证码上面进行点击操作 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()
有些地方不打*就发不出来,所以放张图片在这里,需要源码的朋友点击这里即可
import requests
import random
import time
content_list = ['主播真厉害', '爱了爱了', '666', '真棒']
num = 1
while True:
if num == 10:
break
time.sleep(3)
url = 'https://api.live.bilibili.com/msg/send'
data = {
'bubble': '0',
'msg': random.choices(content_list),
'color': '16777215',
'mode': '1',
'fontsize': '25',
'rnd': '1668605910',
'roomid': '23875324',
}
headers = {
'origin': 'https://***.com',
'referer': 'https://***.com/23875324?visit_id=40c7gu5p3620',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36',
}
response = requests.post(url=url, data=data, headers=headers)
print(response.text)
num += 1
今天的分享到这里就结束了
顺便给大家推荐一些Python视频教程,希望对大家有所帮助:
Python零基础教学合集
对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/