世界顶级草台班子
World-level top CAOTAIBANZI
百度网盘api
License: MIT License
RT
pcs = PCS('account','password')
Traceback (most recent call last):
File "", line 1, in
File "/home/ubuntu/.local/lib/python2.7/site-packages/baidupcsapi/api.py", line 409, in init
super(PCS, self).init(username, password, api_template, captcha_func=captcha_callback)
File "/home/ubuntu/.local/lib/python2.7/site-packages/baidupcsapi/api.py", line 135, in init
self._initiate()
File "/home/ubuntu/.local/lib/python2.7/site-packages/baidupcsapi/api.py", line 190, in _initiate
self._login()
File "/home/ubuntu/.local/lib/python2.7/site-packages/baidupcsapi/api.py", line 291, in _login
self._check_account_exception(result.content)
File "/home/ubuntu/.local/lib/python2.7/site-packages/baidupcsapi/api.py", line 331, in _check_account_exception
raise LoginFailed(msg)
baidupcsapi.api.LoginFailed: 请在弹出的窗口操作,或重新登录
文档似乎打不开了?
使用save_share_list的时候.
if 'errno' in foo and foo['errno'] == -6 :
到这句就报异常:raise LoginFailed('User unsigned in.')
---实际返回的json信息:
{u'errno': 0, u'err_msg': u'', u'request_id': 3618439044591988158}
这json不应该有异常情况!
save_share_list使用了_request .返回结果是html 造成json异常.
wrapper 中加入了这个就好了!
if ret.content[:1] != '{' :
return ret
如题,这其实是个播放百度云视频的插件,最近一直是-6的问题
[-] shareid, uk = None, None
[+] shareid, uk = '', ''
重定向404错误连接无影响正常运行.
InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
InsecureRequestWarning)
https://pan.baidu.com/s/1gfce3sB
https://pan.baidu.com/error/404.html
分享文件或文件夹
.. automethod:: baidupcsapi.PCS.share
现在百度网盘,有"公开分享“和”私密分享“,请问这个对应的PCS.share有没有具体的例子?
非常感谢!
百度好像没有提供种子离线下载的api,实现的原理是什么呀?
看到captcha.py里面有用到PIL这个图像处理包,最后去装了Pillow结果下了一大装也编译了一大堆lib,结果最后来了个IOError: decoder jpeg not available
倒入如这样来吧,反正就是显示验证码给人类,不一定要通过console吧,验证码图像拿到后,上传到临时图片存储上,返回一个地址,然后等待用户键入,用户就用这个地址去看验证码图像吧。也省得在console上处理图像这么麻烦,用的也麻烦的。
搜索一下“image temporary upload”会有很多也算是小有历史的服务,像tiikoni expirebox这些,临时传个小图片保留几个小时就足够了。
我每次请求都会更新 重新输入 验证码 特别不方便 能不能一直使用一份cookies或者自动识别验证码呀?
谢谢了
pip里似乎有个Bug,折腾了一天,都没找到原因。
主要是在用分片后用Super_file合并的时候总是出现:
'{"error_code":31023,"error_msg":"request body param error, it must be:param={"block_list":["file_0_md5","file_1_md5",....]}","request_id":739767243}'
而事实上Block_list是对的。
我试着将两个步骤分成两个文件:先运行test1.py(用PCS.upload_tmpfile上传10个文件),然后test2.py(用pcs.upload_superfile合并),结果居然成功了,
而将两个步骤合并成一个test.py却出现上面的错误信息。
然后我更新里这里的最新版本,问题就解决了。希望后来者不会象我这样浪费一天时间。
问这个问题略显low了,不知道为什么我登陆的时候,
并没有成功。而是出现了下面的提示的错误信息。
我的Python版本是2.7
测试环境 是Ipython
In [1]: from baidupcsapi import PCS
In [2]: pcs = PCS('10643XXX','******')
系统找不到指定的路径。
�[s�[u�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;23
;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5
;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[4
231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄
搜索接口
recursion写错成了recusion
_request调用了check_login的wrap,里面会试图把content全部加载完毕。如果文件很大的话,程序就假死在这里,并导致后续raw.read()没数据。
基于你的项目搞了个Java版 https://github.com/xm0625/BaiduPanApi-Java/ ,有兴趣来看看,给点建议哈~
需求是生成分享的私密链接和提取码,这块会在计划中么?或者你有没有什么思路?
有时间写个demo,大概是 将文件分块,计算每一块的MD5 precreate 对于服务器上的某个文件需要上传的块 upload_tmpfile 上传临时文件(块) upload_superfile 合并块(在precreate返回所需块为空时调用本函数可合并文件) 注意,百度服务器上文件是分块保存的,块不会消失
求完善这个demo,云主机内存有限,稍微大一点的文件就报MemoryError
了。
希望上传的是一个mp4
文件,不是按行分隔的文本文件。
大概半个月前我用JAVA写了一个云音乐下载器,百度云离线器并且把它们合并成了云音乐转存到百度离线任务的转存器(请务必忽略我这没有创意的起名方式
JAVA写的 三个程序都Works Well
然而今天在本地试了下 发现登录失败 err_no = 257, 输入验证码后 err_no = 2
看了你的代码后认为可能是因为密码没有用RSA加密 但是有2个问题在此想请教一下
1 我用位于米国的VPS跑离线器没有问题 成功给自己的百度云加了任务
但是用位于腐国的本机就有上述问题 不太清楚原因
2 不是很懂Python, 想请教下RSA的具体JAVA实现 以下是JAVA的代码 似乎不太行
try {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair kp = kpg.genKeyPair();
Key publicKey = kp.getPublic();
Key privateKey = kp.getPrivate();
KeyFactory fact = KeyFactory.getInstance("RSA");
RSAPublicKeySpec pub = fact.getKeySpec(kp.getPublic(), RSAPublicKeySpec.class);
RSAPrivateKeySpec priv = fact.getKeySpec(kp.getPrivate(), RSAPrivateKeySpec.class);
}catch (Exception e){
e.printStackTrace();
}
最后~目测菊苣是ACG爱好者~ 有玩Google+么~ 我的是 +FireAwayH (于是拿出了绿箭
这个脚本支持magnet,可以参考,求加入此项功能!
https://github.com/PeterDing/iScript/blob/master/pan.baidu.com.py
用pip安装后发现代码都是python2的,python3根本没法用,我尝试用2to3.py转换后发现bencode.py仍有些关于types代码没法用,于是我手动修改成了python3代码,可是运行后还是出现各种错误,这些错误超出我的能力范围。所以恳请您支持python3.x版本,不胜感激!
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/site-packages/baidupcsapi/api.py", line 400, in init
super(PCS, self).init(username, password, api_template, captcha_func=captcha_callback)
File "/usr/local/lib/python2.7/site-packages/baidupcsapi/api.py", line 135, in init
self._initiate()
File "/usr/local/lib/python2.7/site-packages/baidupcsapi/api.py", line 181, in _initiate
self._login()
File "/usr/local/lib/python2.7/site-packages/baidupcsapi/api.py", line 278, in _login
captcha = self._get_captcha(code_string)
File "/usr/local/lib/python2.7/site-packages/baidupcsapi/api.py", line 221, in _get_captcha
verifycode = self.captcha_func(jpeg)
File "/usr/local/lib/python2.7/site-packages/baidupcsapi/api.py", line 227, in show_captcha
import captcha
File "/usr/local/lib/python2.7/site-packages/baidupcsapi/captcha.py", line 6, in
import Image
ImportError: No module named Image
现在手动输入之后没有错误,但是会提示:
{"errno":-6,"request_id":5959997218888646640}
请问如何解决?当前目录下没有.用户名.cookies文件
在没有cookies的情况下, PCS('username', 'password').user['token'] == 'the fisrt two args should be string type:0,1!'
修改BaseClass._initiate
可以解决此问题master...gaohuazuo:patch-1
login failed now. do you have a java version api? thx.
here is the log:
Traceback (most recent call last):
File "", line 1, in
File "baidupcsapi/api.py", line 398, in init
super(PCS, self).init(username, password, api_template, captcha_func=captcha_callback)
File "baidupcsapi/api.py", line 135, in init
self._initiate()
File "baidupcsapi/api.py", line 181, in _initiate
self._login()
File "baidupcsapi/api.py", line 282, in _login
self._check_account_exception(result.content)
File "baidupcsapi/api.py", line 320, in _check_account_exception
raise LoginFailed(msg)
baidupcsapi.api.LoginFailed: unknown err_id=18
使用用户名密码实例一个PCS对象,之后输入captcha验证码,本地机(OSX)测试正常,但在远程主机(Unbuntu)上总是报错,如下:
https://passport.baidu.com/cgi-bin/genimage?njG4506f5737714f541024e140a5b01468a68265b060201892c
open url aboved with your web browser, then input verify code > XXPS
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 409, in init
super(PCS, self).init(username, password, api_template, captcha_func=captcha_callback)
File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 135, in init
self._initiate()
File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 190, in _initiate
self._login()
File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 291, in _login
self._check_account_exception(result.content)
File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 331, in _check_account_exception
raise LoginFailed(msg)
baidupcsapi.api.LoginFailed: 登录失败,请在弹出的窗口操作,或重新登录
when first deploy on remote server, encounter this,I never change anything and I'am sure password is ok.
request version is
requests (2.8.1)
requests-toolbelt (0.4.0)
super(PCS, self).init(username, password, api_template, captcha_func=captcha_callback)
File "/home/wwwroot/yun.4moviescheduling.com/api.py", line 135, in init
self._initiate()
File "/home/wwwroot/yun.4moviescheduling.com/api.py", line 183, in _initiate
self.user['token'] = self._get_token()
File "/home/wwwroot/yun.4moviescheduling.com/api.py", line 210, in _get_token
'https://passport.baidu.com/v2/api/?getapi&tpl=mn&apiver=v3&class=login&tt=%s&logintype=dialogLogin&callback=0' % int(time.time())).text.replace(''', '"')
File "/usr/local/lib/python2.7/dist-packages/requests-2.8.1-py2.7.egg/requests/sessions.py", line 480, in get
return self.request('GET', url, *_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests-2.8.1-py2.7.egg/requests/sessions.py", line 468, in request
resp = self.send(prep, *_send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests-2.8.1-py2.7.egg/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests-2.8.1-py2.7.egg/requests/adapters.py", line 447, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:510: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
from baidupcsapi import PCS
pcs = PCS('zz','password')
print pcs.quota().content
print pcs.list_files('/').content
{"errno":-6,"request_id":3518416116324194395}
刚才在做python3版本的测试,发现下载了东西虽然response码是200,但是找不到下载的文件。
然后我切换到python2版本,下载完也没有找到
我用find找了整个磁盘也没找到 😂
用的pcs.download(",header)
代码如下:
pcs = PCS('[email protected]', '...')
test_file = open('api.py','rb').read()
ret = pcs.upload('/', test_file, 'api.py')
print(ret.text)
然后服务器回复,上传并没有成功:
{"error_code":31023,"error_msg":"param error","request_id":2611842115044139508}
求指教, 登录遇到错误
from baidupcsapi import PCS
pcs = PCS("mmmaomao", "***********")
C:\Users\admin\Envs\baidu\lib\site-packages\requests\packages\urllib3\util\ssl_.
py:100: InsecurePlatformWarning: A true SSLContext object is not available. This
prevents urllib3 from configuring SSL appropriately and may cause certain SSL c
onnections to fail. For more information, see https://urllib3.readthedocs.org/en
/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
C:\Users\admin\Envs\baidu\lib\site-packages\requests\packages\urllib3\connection
.py:264: SubjectAltNameWarning: Certificate for passport.baidu.com has no `subje
ctAltName`, falling back to check for a `commonName` for now. This feature is be
ing removed by major browsers and deprecated by RFC 2818. (See https://github.co
m/shazow/urllib3/issues/497 for details.)
SubjectAltNameWarning
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\admin\Envs\baidu\lib\site-packages\baidupcsapi\api.py", line 40
0, in __init__
super(PCS, self).__init__(username, password, api_template, captcha_func=cap
tcha_callback)
File "C:\Users\admin\Envs\baidu\lib\site-packages\baidupcsapi\api.py", line 13
5, in __init__
self._initiate()
File "C:\Users\admin\Envs\baidu\lib\site-packages\baidupcsapi\api.py", line 18
3, in _initiate
self.user['token'] = self._get_token()
File "C:\Users\admin\Envs\baidu\lib\site-packages\baidupcsapi\api.py", line 21
0, in _get_token
'https://passport.baidu.com/v2/api/?getapi&tpl=mn&apiver=v3&class=login&tt=%
s&logintype=dialogLogin&callback=0' % int(time.time())).text.replace('\'', '\"')
File "C:\Users\admin\Envs\baidu\lib\site-packages\requests\sessions.py", line
480, in get
return self.request('GET', url, **kwargs)
File "C:\Users\admin\Envs\baidu\lib\site-packages\requests\sessions.py", line
468, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\admin\Envs\baidu\lib\site-packages\requests\sessions.py", line
576, in send
r = adapter.send(request, **kwargs)
File "C:\Users\admin\Envs\baidu\lib\site-packages\requests\adapters.py", line
433, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: hostname 'passport.baidu.com' doesn't match u'baid
u.com'
python2.7, pip安装的.
pcs = PCS(username, passwd)
输入验证码后出现此错误!
哪儿出现问题了?
请教一下,你在readme中提到baidupanapi,请问是什么?文档在哪里?谢谢
我想做一个获取百度云直链的应用(像这样:http://www.huangguofeng.com/gongju.php ),不知从何下手,有建议吗?多谢
目前登入一直跳 baidupcsapi.api.LoginFailed: 登录失败,请在弹出的窗口操作,或重新登录,但網頁版正常,所以我想把cookie從chrome導出到file,然後試著修改 _load_cookies
def _load_cookies(self):
cookies_file = '.{0}.cookies'.format(self.username)
logging.debug('cookies file:' + cookies_file)
if os.path.exists(cookies_file):
logging.debug('%s cookies file has already existed.' %
self.username)
with open(cookies_file, 'r') as cookies_file:
# cookies = requests.utils.cookiejar_from_dict(
# pickle.load(cookies_file))
# logging.debug(str(cookies))
cookies = {}
cookie_json = json.load(cookies_file)
for cookie in cookie_json:
cookies[cookie['name']] = cookie['value']
self.session.cookies = cookies
self.user['BDUSS'] = self.session.cookies['BDUSS']
# print(self.session.cookies)
return True
else:
return False
不過執行會出現
File "baidu\api.py", line 497, in __init__
verify_func=verify_callback)
File "baidu\api.py", line 169, in __init__
self._initiate()
File "baidu\api.py", line 230, in _initiate
self.user['token'] = self._get_token()
File "baidu\api.py", line 263, in _get_token
time.time()), cookies=self.session.cookies).text.replace('\'', '\"')
File "C:\Python34\lib\site-packages\requests\sessions.py", line 501, in get
return self.request('GET', url, **kwargs)
File "C:\Python34\lib\site-packages\requests\sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python34\lib\site-packages\requests\sessions.py", line 624, in send
extract_cookies_to_jar(self.cookies, request, r.raw)
File "C:\Python34\lib\site-packages\requests\cookies.py", line 135, in extract_cookies_to_jar
jar.extract_cookies(res, req)
AttributeError: 'dict' object has no attribute 'extract_cookies'
請問還有哪邊需要修改呢?
File "/usr/local/lib/python2.7/site-packages/baidupcsapi/api.py", line 320, in _check_account_exception
raise LoginFailed(msg)
baidupcsapi.api.LoginFailed: unknown err_id=400037
运行样例
from baidupcsapi import PCS
pcs = PCS('myaccount', 'mypassword')
print pcs.quota().content
结果打出console里面打出一串这样的东西,样例跑不起来
�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;23
5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231
;231;38;5;231m▄�[48;5;231;38;5;231m▄�[48;5;231;38;5;231m▄�[
captcha >
找了web.baidupan,运行也是这么个结果。
这个到底是怎么回事呢
File "/usr/local/lib/python2.7/site-packages/baidupcsapi/api.py", line 331, in _check_account_exception
raise LoginFailed(msg)
baidupcsapi.api.LoginFailed: unknown err_id=400032
不知道这是什么问题,能不能解决
您好,注意到这里的panapi在官网没有相关信息,应该是自己抓取的吧?不知道使用这种形式的api在商业软件上,会有版权问题吗?谢谢!
做一下伸手党,用2to3转换的有很多问题 ;)
When i try to log in i get stuck on a captcha loop. I'm always asked to input a captcha when the code is always correct.
It does not matter if my username/password is my right one or just garbage. always captcha
是不是百度故意的?这样看视频怎么能够从中间看呢?
{
"errno": 0,
"list": [
{
"server_mtime": 1457499761,
"category": 1,
"unlist": 0,
"fs_id": 1087892968733738,
"oper_id": 0,
"server_ctime": 1457499761,
"isdir": 0,
"local_mtime": 1457499761,
"size": 5300519660,
"thumbs": {
"icon": "***",
"url3": "***",
"url2": "***",
"url1": "***"
},
"md5": "81f13387d3358bb7ddd0817190e646fc",
"path": "***.mp4",
"local_ctime": 1457499761,
"server_filename": "***.mp4"
}
],
"request_id": 1849519763054468400
}
例如百度网盘账号A有这么一个文件
百度网盘账号B可否根据这个文件的md5实现秒传这个文件?
你的 baidupcsapi, 有没有转存的api?
我在 http://developer.baidu.com/wiki/index.php?title=docs/pcs 没有找到。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.