python自动化下载yunfile(未完成)
完整代码在github地址https://github.com/StydyOnce/yunfile
import re
import requests
import pytesseract
import time
from PIL import Image
from bs4 import BeautifulSoup headers = {"User-Agent": "Mozil",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.9",
"Referer": "http:"
} session = requests.Session() #可以记录所有请求的cookie # 二值化,即超过下面这个值的像素点二值为黑否则为白
threshold = 100
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1) # 由于都是数字
# 对于识别成字母的 采用该表进行修正
rep = {'O': '',
'I': '',
'L': '',
'Z': '',
'S': '',
'$': ''
}
def get_verify_code(url): #url为初进网盘地址
image_name = 'picture.jpg'
a = session.get("http:", headers = headers)
#session.cookies.update({"referer": r"http%3A%2F%2Fpage4.dfpan.com%2Ffile%2Fcaixi89%2F1ea113e0"})
r = session.get('http://page4.dfpan.com/verifyimg/getPcv.html', headers = headers) with open(image_name, 'wb') as file:
file.write(r.content) #打开图片
image = Image.open('picture.jpg') #转化到灰度图
imgry = image.convert('L') #保存图像
imgry.save('g'+image_name) #二值化,采用阈值分割法,threshold为分割点
out = imgry.point(table, '')
out.save('b'+image_name) #识别
text = pytesseract.image_to_string(out) #对识别后的验证码人为处理
text = text.strip()
text = text.upper();
for r in rep:
text = text.replace(r, rep[r])
#将非数字的字符进行替换
text = re.sub("[^0-9]", "", text) if(len(text)!= 4): #if num is not equal 4, then it must be wrong and get verify code again
text = get_verify_code("")
print(text)
return text def build_info(data):
#print(data)
soup = BeautifulSoup(data, "html.parser")
ret = soup.find_all(name='table', attrs='style')
print(ret) def get_new_url(url):
verify_code = get_verify_code(url)
print(verify_code)
new_url = str(url) +str(verify_code) + '.html'
print(new_url)
#time.sleep(30)
response = session.get(new_url, headers = headers)
print(response.status_code)
'''print(response.status_code) # 打印状态码
print(response.url) # 打印请求url
print(response.headers) # 打印头信息
print(response.cookies) # 打印cookie信息
print(response.text) # 以文本形式打印网页源码
print(response.content) # 以字节流形式打印
''' if (response.status_code == 302):
print("aleady new location")
elif(response.status_code!=200):
print("aleady new location")
else:
#print(response.text)
build_info(response.text) if __name__ == "__main__": get_new_url("")
python自动化下载yunfile(未完成)的更多相关文章
- selenium+python自动化98--文件下载弹窗处理(PyKeyboard)
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...
- selenium+python自动化79-文件下载(SendKeys)
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...
- Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|
内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...
- 用python做youtube自动化下载器 代码
目录 项目地址 思路 流程 1. post i. 先把post中的headers格式化 ii.然后把参数也格式化 iii. 最后再执行requests库的post请求 iv. 封装成一个函数 2. 调 ...
- Python自动化运维 技术与最佳实践PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:7bl4 一.内容简介 <python自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...
- Day1 老男孩python自动化运维课程学习笔记
2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...
- python自动化运维学习第一天--day1
学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...
- Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)
前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLT ...
- Selenium2+python自动化75-非input文件上传(SendKeys)
前言 不少小伙伴问非input标签如何上传文档,这个本身就是一坑,无奈很多小伙伴非要跳坑里去,那就介绍一个非主流的上传文件方法吧,用第三方库SendKeys. 只支持python2环境 python3 ...
随机推荐
- SpringFox
简介 http://projects.spring.io/spring-framework null
- Json化数据-调微信接口
// 先获取用户openid列表 List<String> openids = wxPhotoUpload.getUserOpenIdList(access_token); TreeMap ...
- 抽象工厂方法模式(Abstract Factory Pattern)
Provide an interface for creating families of related or dependent objects without specifying their ...
- AutoFac之 Named and Keyed 方式注入
AutoFac是.net framework下一个高效的ioc容器,传说中的效率最快(我偷偷看了几篇测试博文,确实这个容器的效率遥遥领先). 好了废话不多说,AutoFac的使用方式请看:http:/ ...
- 请求网络图片缓存到本地 ,还有一些现成的图片加载框架的使用 Ace网络篇(一)
现在去买年货~~~~~~ 占坑, 现在来填坑 填完睡觉,感谢这俩月的把自己往死里逼得奋斗从JAVA什么都不懂到现在,做这些也是给在自学路上的新人(我也是菜鸟)一点点我力所能及的帮助,等我水平更高了还会 ...
- React.js 小书 Lesson8 - 组件的组合、嵌套和组件树
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson8 转载请注明出处,保留原文链接和作者信息. 继续拓展前面的例子,现在我们已经有了 Heade ...
- Programmer Competency Matrix--ref--http://sijinjoseph.com/programmer-competency-matrix/
Note that the knowledge for each level is cumulative; being atlevel n implies that you also know eve ...
- Docker进阶
Docker进阶 Docker容器命名与重命名 命名 docker run -it -p 80:80 --name containerName img:tag /bin/bash 重命名 docker ...
- json数据的存储与读取
1. json数据格式: data = [ {"key1":"xxx","item":"ddd"}, {"k ...
- Javascript模块化编程详解
在这篇文章中,我将会回顾一下js模块化编程的基础,并且将会讲到一些真的非常值得一提的进阶话题,包括一个我认为是我自创的模式. 模块化编程是一种非常常见Javascript编程模式.它一般来说可以使得代 ...