本项目是利用了selenium+chrome来自动抢狗,类似于爬虫,可以设置抢狗的金额范围。验证码识别是调用百度云端OCR识别,速度不算快,1到2秒左右,准确率50%吧,如果嫌不准也可以自己手敲验证码。

主文件

from splinter.browser import Browser
from time import sleepimport urllib.request
import recognize_img as ocr#from selenium.webdriver.support.wait import WebDriverWait
#from selenium.webdriver.support import expected_conditions as EC
#from selenium.webdriver.common.by import By# 初始化驱动
driver = Browser(driver_name="chrome",executable_path=r"./chromedriver.exe")
# 初始化浏览器窗口大小
# driver.driver.set_window_size(1400, 1000)
driver.driver.maximize_window()
driver.visit("https://pet-chain.baidu.com/")
# 这里先自己登陆莱茨狗官网,然后把登陆后的cookies复制到这里,{'name':'key', 'value':'value'}格式添加
driver.driver.add_cookie({'name':'__cfduid', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'BAIDUID', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'FG', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'PSTM', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'BIDUPSID', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'MCITY', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'H_PS_PSSID', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'BDRCVFR[feWj1Vr5u3D]', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'PSINO', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'BDORZ', 'value':'xxxxxx'})
driver.driver.add_cookie({'name':'BDUSS', 'value':'xxxxxx'})#def wait_display(xpath):
#    WebDriverWait(driver.driver, 10, 0.5).until(EC.element_to_be_clickable((By.XPATH, xpath)))  # 显性等待def is_chinese(s):if s >= u'\u4e00' and s<=u'\u9fa5':return Trueelse:return Falsedef get_cheap_dog():sleep(0.5)driver.find_by_text(u"价格").click()# driver.driver.find_element_by_xpath("//header/div/div/span[2]").click()sleep(1) # 强制等待# driver.driver.implicitly_wait(3) # 隐式等待# wait_display("//div[@class='dog']") # 显性等待dog_list = driver.driver.find_elements_by_xpath("//div[@class='dog']")#/dl/dd/h3/span[2]")return dog_listdef get_verification_code():sleep(0.5)image_url = driver.driver.find_element_by_xpath("//div[@class='sms-img']/img").get_attribute("src")response = urllib.request.urlopen(image_url)verify_img = response.read()with open('download.jpg', 'wb') as f:f.write(verify_img)v_code = ocr.start_recognize(r"download.jpg")return v_codeif __name__ == '__main__':isFirst = Truewhile True:try:if isFirst:isFirst = Falseelse:driver.visit("https://pet-chain.baidu.com/")dog_list = get_cheap_dog()for item in dog_list:price = int(float(item.find_element_by_xpath("dl/dd/div/span/span").text))# print(price)if price <= 500: # 设置金额item.click()while True:sleep(0.5)driver.find_by_text("确认购买").click()# v_code = "EFR9"# sleep(1)# 百度OCR识别# v_code = get_verification_code()# while len(v_code) != 4 or not v_code.isalnum() or is_chinese(v_code): # 长度不等于4,不是字母和数字,包含中文#     driver.driver.find_element_by_xpath("//i[@class='icon-font icon-shuaxin']").click()#     v_code = get_verification_code()# driver.driver.find_element_by_xpath("//input").send_keys(v_code)# 人工输入sleep(0.5)v_code = ""driver.driver.find_element_by_xpath("//input").send_keys("")while True:v_code = driver.driver.find_element_by_xpath("//input").get_attribute("value")# print("v_code:",v_code)if len(v_code) == 4:breakelse:sleep(0.5)sleep(0.5)driver.find_by_text("立即购买").click()sleep(1)msg = driver.driver.find_element_by_xpath("//span[@class='mint-toast-text']").textif msg != "验证码错误":print("="*10,msg,"="*10)breakbreakexcept Exception as error:print(error)

OCR验证码识别文件代码

import time
from PIL import Image
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
from aip import AipOcr""" (百度ocr)你的 APPID AK SK """
APP_ID = 'xxxxxx'
API_KEY = 'xxxxxx'
SECRET_KEY = 'xxxxxx'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)""" 读取图片 """
def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()def start_recognize(file):start = time.time()im = Image.open(file)w, h = im.sizeregion = im.resize((int(w * 1.5), int(h * 1.5)))region.save(r"./tmp.png")image = get_file_content(r"tmp.png")respon = client.basicGeneral(image)  # 用完500次后可改respon = client.basicAccurate(image)titles = respon['words_result']  # 获取问题print("respon:", respon)print("验证码:", titles[0]['words'])end = time.time()print('程序用时:' + str(end - start) + '秒')return  titles[0]['words']if __name__ == '__main__':start = time.time()im = Image.open(r"D:\python_work\other\OpenCV\Chapter 7_Code\images\number.PNG")w, h = im.sizeprint("xx:{}".format(im.size))# region = im.crop((70,200, w-70,700))    #裁剪的区域region = im.resize((int(w * 1.5), int(h * 1.5)))region.save(r"./crop_test1.png")image = get_file_content(r"crop_test1.png")respon = client.basicGeneral(image)  # 用完500次后可改respon = client.basicAccurate(image)titles = respon['words_result']  # 获取问题print("respon:", respon, "\ntitles:", titles[0]['words'])end = time.time()print('程序用时:' + str(end - start) + '秒')

代码地址

百度莱茨狗python自动抢狗,调用百度OCR或者人工识别验证码相关推荐

  1. java莱茨狗_百度莱茨狗爬虫,支持本地验证码识别

    百度莱茨狗购买爬虫 如果这个项目对你有帮助,烦请点一下右上角的star,thanks~ v0.6版本使用前请先解压resources/下的svm.model.zip文件到该目录: 效果图: 功能 当前 ...

  2. 百度莱茨狗刷狗脚本Pet-Chain

    百度莱茨狗购买脚本 详情Github 领养 一共可以领养四只狗 第一只 第二只 第三只 第四只 说明 使用前请安装threadpool pip2 install threadpool 如果想使用sel ...

  3. 如何领4只百度莱茨狗?莱茨狗微积分怎么获得?

    莱茨狗领取4只攻略,百度莱茨狗怎么领4只?发现原来两只不是上线,有人已经免费领取4只莱茨狗了,大家肯定很好奇这么领取4只莱茨狗吧,下面就教你领取4只莱茨狗的方法! 莱茨狗官网地址 https://pe ...

  4. 小米加密兔和百度莱茨狗怎么玩?莱茨狗和加密兔怎么注册

    数字货币区块链加密货币无疑是2018年最热门的新闻 了,尤其是近段时间各个巨头的加入更增加了,区块链技术的蓬勃发展,目前360区块猫,百度莱茨狗,小米加密兔,网易星球都纷纷涌入区块链技术.对于未来来说 ...

  5. 百度莱茨狗刚出就有人卖到了1W+!4只百度狗领养指南及运营解析!

    百度莱茨狗价值几何? 昨天,网友刚爆出百度要上线区块链项目"莱茨狗",官方正式回应还在内测阶段! 但是,据场主了解到,身边不少朋友已经领养了莱茨狗,而且还不止一只!基本都是人手四只 ...

  6. 百度莱茨狗领取方式大全

    免费领取4个莱次狗的方法和地址,百度区块链电子宠物狗"莱茨狗"的一些看法 优先领取链接:https://jr.baidu.com/~2vFydi?shareCode=3eef2af ...

  7. python自动抢_Python+Appium实现自动抢微信红包

    前言 过年的时候总是少不了红包,不知从何时开始微信红包横空出世,对于网速和手速慢的人只能在一旁观望,做为python的学习者就是要运用编程解决生活和工作上的事情. 于是我用python解决我们的手速问 ...

  8. 朋友圈疯传加速包抢票,还不如Python自动抢票来的靠谱!

    写在前面 一年一度的春运已经悄然来临,不知道身在异乡的你是否抢到一张回家的火车票 又有多少人因为一张小小的火车票而不能回家过春节.漂泊在外的游子在这个时候的乡愁就是一张小小的火车票 近日在朋友圈被一波 ...

  9. Python自动抢火车票神器!!

    一年一度的抢火车票大战正式拉开序幕- 然饿大多数人碰到的是这种情况:当你满心期待摩拳擦掌准备抢票的时候,你会发现一票难求!想回趟家真难! 那么作为程序猿的你,当然要用程序猿的方式来抢票!下面介绍几款在 ...

最新文章

  1. linux 下网络流量监控
  2. JCo3 建立连接到SAP(2)- 连接池
  3. 华为鸿蒙OS 2.0 发布,18点18分开放源代码
  4. 我的docker随笔2:docker在ubuntu上的安装
  5. html中span标签w3c,HTML col 标签
  6. 时刻记住要做合格的程序员——一次高性能程序设计实验课后的反思
  7. 艾伟_转载:在C#中实现3层架构
  8. 第一本微服务网关图书上市,详解 GitHub 28.3k+ 标星项目 Kong
  9. 2022-CKA考试经验总结
  10. 《博德之门3》的许多设计,还不如上世纪的前作
  11. MySQL数据库(15):高级数据操作-新增数据
  12. 如果刷新网页或者下拉出现白屏可能是什么原因以及url相关问题
  13. CEPH告警:health_warn 45 pgs degraded;60 pgs unclean; 45 pgs undersized
  14. python手机端如何下载_过去,哔哩哔哩上面的视频只能在手机上面下载;现在,我用Python爬虫实现了能在PC端上面下载...
  15. 纳尼?华为首席架构师只用434页笔记,就将网络协议给拿下了
  16. 【智能算法】基于双隐含层BP神经网络的预测
  17. usrp的API接口
  18. Java操作Excel电子表格
  19. 敏捷(Agile)是什么?--参加优普丰CSM认证培训有感
  20. 小程序逆向加密步骤小结

热门文章

  1. element-ui中switch开关回显问题
  2. landsat 卫星影像的常见问题(去云、是否进行几何和大气校正以及数据产品的处理级别)
  3. 大数据处理技术作业——使用HBaseMongoDBMapReduce进行数据存储和管理
  4. 微信测试公众号接口配置修改报-配置失败 错误信息- {errcode:-106,errmsg:token check fail}
  5. android圆形波纹按钮,android自定义View——圆形波纹扫描效果
  6. 超薄手机诺基亚5310红色
  7. 配置家用计算机lcd,2017家用电脑显示器多大最合适
  8. ROS机器人开发实践——ROS自定义消息
  9. 10.2 黑马Vue电商后台管理系统 完善订单模块--搜索订单(修改后端)
  10. 使用media实现响应式布局