本文来源吾爱破解论坛
本帖最后由 kge369 于 2019-7-4 10:14 编辑 1.jpg (7.01 KB, 下载次数: 1)
下载附件
保存到相册
3.jpg (50.97 KB, 下载次数: 0)
下载附件
保存到相册
2.jpg (23.66 KB, 下载次数: 0)
下载附件
保存到相册
建议下载文件大小不要超过1M吧,超过的话,把等待下载时间加大点
--->说明: 使用python2.7+selenium+chrome v49+百度ocr识别,基本上pip install 相关的程序,源码就可以直接运行了,exe文件也编译了,去别的电脑运行感觉有各种问题,大家自己用源码跑吧,最新chrome版本的话,打开网页太卡了。
网盘的(15+15)秒验证码限制和(5+5)分钟等待还是存在的。好处就是url很多的时候,丢那边就不用管了, 需要在源码所在目录,下图所示,创建file.txt 、recode.txt 、config.txt
把url全部(一行一个url)放在file.txt中,程序开始则对比recode.txt,对比file.txt文件的url链接是否在recode.txt中,recode中不存在此url则保存到newfile.txt。最终程序打开url使用的是newfile中的url。
config.txt中是定义百度OCR识别的id等,file.txt、recode,txt 、chrome的下载路径(由于不知道怎么自动获取,所以一定要手动填,要不然判断文件是否存在错误,会等待很长时间)。。。。
appId =kge369
apiKey =kge369
secretKey =kge369
pic_path =.\1.png
urlfile =.\file.txt
down_path =C:\Users\Administrator\Downloads\
recodefile =.\recode.txt
引用我发在申请区的帖子
yunfile大概思路是:
广告窗口需要关闭 --> 点击普通下载,获取验证码 --> 截图 -->处理图片获取验证码 -->百度ocr识别图片中的验证码 -->发送数字到验证码框中,点击进入下载-->广告关闭并下载
1、第一个阶段,关闭广告
用chrome打开网页后,现版本yunfile打开时有个广告,想关闭则需要进行元素定位,右键广告的右上角的X,选择 检查,发现是这个 <div class="ad-close-btn"></div> ,class_name元素+ad-close-btn来定位位置,然后点击click()
[Python] 纯文本查看 复制代码
try: print (u'检测广告阶段') driver.find_element_by_class_name("ad-close-btn") driver.find_element_by_class_name("ad-close-btn").click()
2、第二个阶段,点击普通下载
关闭广告后,右键普通下载这个地方,选择检查,发现是<span class="down_span common_speed_down" id="common_speed_down">普通下载</span>,id元素+common_speed_down来定位位置,然后点击click()
[Python] 纯文本查看 复制代码
try: driver.find_element_by_id("common_speed_down") driver.find_element_by_id("common_speed_down").click()
3、第三个阶段,截图
[Python] 纯文本查看 复制代码
#保存网页截图为当前程序所在目录的1.png pic_path = r'.\1.png' #截图 try: driver.save_screenshot(pic_path)
4、第四个阶段,处理整个网页的截图获取验证码图片
右键验证码图片,选择检查,发现是<img id="cvimg2" style="margin: -8px 15px -8px 4px;" src="/verifyimg/getPcv.html">,使用cvimg2来定位图片的上下左右位置,重新处理图片,保存为1.png
[Python] 纯文本查看 复制代码
time.sleep(3) location = driver.find_element_by_id('cvimg2').location size = driver.find_element_by_id('cvimg2').size left = location['x'] top = location['y'] right = location['x'] + size['width'] bottom = location['y']+ size['height'] try: #从保存的截图中截取验证码,再次保存 img = Image.open(pic_path).crop((left,top,right,bottom)) img.save(pic_path) except: print (u'保存验证码图片失败') pass #验证码获取后,重置验证码图片的上下左右信息 left = '' top = '' right = '' bottom = '' time.sleep(2)
5、第五个阶段,百度ocr识别图片获取验证码数字
百度OCR部分
[Python] 纯文本查看 复制代码
###################百度OCR识别##################################### config = { 'appId': '11111111', 'apiKey': 'zzzzzzzzzz111111', 'secretKey': 'vvvvvvvvvvvvvvvvvvvzzzzzzz' } #client = AipOcr(**config) def get_file_content(file): try: with open(file,'rb') as fp: return fp.read() except: print ('dakai yanzhengma tupian fail') def img_to_str(image_path): try: image = get_file_content(image_path) result = client.basicGeneral(image) except: print (u'百度不通') pass for i in result.get('words_result'): return (i.get('words')) ####################################################################应用百度OCR,设置aaa来获取百度OCR返回的信息
[Python] 纯文本查看 复制代码
aaa = img_to_str(pic_path)
6、第六个阶段,发送获取的数字到 验证码输入框中,点击下载
点击输入框,然后右键,检查,发现是<input name="vcode" id="vcode" type="text" maxlength="10" size="8" style="height:20px;margin-top:2px;width:85px;">,使用id和vcode来定位元素。清空当前输入框,发送数字到框中。点击下载,等待30秒
[Python] 纯文本查看 复制代码
try: driver.find_element_by_id('vcode') except: pass else: code = driver.find_element_by_id('vcode') code.clear() #发送aaa到框中 code.send_keys(aaa) time.sleep(1) #点击进入下载 driver.find_element_by_id("slow_button").click() yanshi(30)
7、第七个阶段,等待广告并关闭(此时和第一步一致),进行普通下载,下载文件
广告关闭此处省略,回看第一步,关闭广告后,右键普通用户下载,选择检查,发现是<span class="down_span spare_down" id="downbtn">普通用户下载</span>,使用用户id和downbtn元素定位,click()点击下载
[Python] 纯文本查看 复制代码
try: driver.find_element_by_id("downbtn") time.sleep(1) driver.find_element_by_id("downbtn").click()
完整python源代码:
发现很多人没回复的习惯,都不知道多少人在使用,还是使用附件的方式,来看多少人下载这个源码吧
源码
下载积分: 吾爱币 -1 CB
补充说明,下载过的url会记录在recode中,因此每次运行程序,会自动过滤已下载过的url,嘿嘿
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: OpenCV vs Dlib 人脸检测比较分析
- 下一篇: python抖X解析源码