Code Monkey home page Code Monkey logo

baidupcsapi's Issues

分块上传的demo

有时间写个demo,大概是 将文件分块,计算每一块的MD5 precreate 对于服务器上的某个文件需要上传的块 upload_tmpfile 上传临时文件(块) upload_superfile 合并块(在precreate返回所需块为空时调用本函数可合并文件) 注意,百度服务器上文件是分块保存的,块不会消失

求完善这个demo,云主机内存有限,稍微大一点的文件就报MemoryError了。
希望上传的是一个mp4文件,不是按行分隔的文本文件。

如何手動匯入cookie?

目前登入一直跳 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'

請問還有哪邊需要修改呢?

请问有办法根据百度网盘文件的md5,实现秒传吗?

{
    "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实现秒传这个文件?

不是很懂python,登录遇到这个问题怎么破?

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

_login failed with msg:"baidupcsapi.api.LoginFailed: unknown err_id=18"

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

无限输入验证码

尝试使用登录demo,提示需要输入验证码信息,但是输入之后又提示输入
image

莫名其妙的的登陆异常情况.

使用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

验证码输入正确后,出现400037错误

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

请求支持python3,谢谢!

用pip安装后发现代码都是python2的,python3根本没法用,我尝试用2to3.py转换后发现bencode.py仍有些关于types代码没法用,于是我手动修改成了python3代码,可是运行后还是出现各种错误,这些错误超出我的能力范围。所以恳请您支持python3.x版本,不胜感激!

分享接口

需求是生成分享的私密链接和提取码,这块会在计划中么?或者你有没有什么思路?

请问授权相关问题

您好,注意到这里的panapi在官网没有相关信息,应该是自己抓取的吧?不知道使用这种形式的api在商业软件上,会有版权问题吗?谢谢!

能否换下验证码处理方式?

看到captcha.py里面有用到PIL这个图像处理包,最后去装了Pillow结果下了一大装也编译了一大堆lib,结果最后来了个IOError: decoder jpeg not available
倒入如这样来吧,反正就是显示验证码给人类,不一定要通过console吧,验证码图像拿到后,上传到临时图片存储上,返回一个地址,然后等待用户键入,用户就用这个地址去看验证码图像吧。也省得在console上处理图像这么麻烦,用的也麻烦的。
搜索一下“image temporary upload”会有很多也算是小有历史的服务,像tiikoni expirebox这些,临时传个小图片保留几个小时就足够了。

login issue

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

验证码的问题

我每次请求都会更新 重新输入 验证码 特别不方便 能不能一直使用一份cookies或者自动识别验证码呀?

谢谢了

需要修正重定向连接BUG.


[-] shareid, uk = None, None
[+] shareid, uk = '', ''

不重定向连接!
报错函数_verify_shared_file,None类型不能连接字符串
https://pan.baidu.com/s/1qXAGyba

重定向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

作者菊苣好!感谢及询问!

大概半个月前我用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 (于是拿出了绿箭

How to begin?

问这个问题略显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▄

Super_file里面有个Bug

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却出现上面的错误信息。
然后我更新里这里的最新版本,问题就解决了。希望后来者不会象我这样浪费一天时间。

baidupanapi

请教一下,你在readme中提到baidupanapi,请问是什么?文档在哪里?谢谢

我想做一个获取百度云直链的应用(像这样:http://www.huangguofeng.com/gongju.php ),不知从何下手,有建议吗?多谢

why ssl error

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

登录失败, requests.exceptions.SSLError?

求指教, 登录遇到错误

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'

在亚马逊EC2实例(Ubuntu)上操作出现错误

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: 请在弹出的窗口操作,或重新登录

add_download_task 錯誤提示

目前該 api 好像沒有錯誤提示?

因為這功能常失敗說...

比如 36000, 36001 之類的
641d73415bf80bebb31eb62c955bda93

題外說,有人知道這錯誤的真正原因嗎?

我下載的只是普通的影集,其他集都正常,就只有部分會出錯

输入验证码以后失败

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

不知道这是什么问题,能不能解决

download流模式调用_request的问题

_request调用了check_login的wrap,里面会试图把content全部加载完毕。如果文件很大的话,程序就假死在这里,并导致后续raw.read()没数据。

有没有pcs.share的使用实例啊?

分享文件或文件夹

.. automethod:: baidupcsapi.PCS.share

现在百度网盘,有"公开分享“和”私密分享“,请问这个对应的PCS.share有没有具体的例子?

非常感谢!

是否可以实现验证码自动输入?

现在手动输入之后没有错误,但是会提示:
{"errno":-6,"request_id":5959997218888646640}
请问如何解决?当前目录下没有.用户名.cookies文件

样例问题

运行样例
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,运行也是这么个结果。

这个到底是怎么回事呢

弱弱的问一句,下载的文件跑哪里去了?

刚才在做python3版本的测试,发现下载了东西虽然response码是200,但是找不到下载的文件。
然后我切换到python2版本,下载完也没有找到
我用find找了整个磁盘也没找到 😂
用的pcs.download(",header)

已知的一些问题

  1. 猜测验证码的URL需要和请求登陆的IP同样,不然有可能会进入无限验证码循环,考虑把验证码图片下到本地。

远程主机captcha验证失败

使用用户名密码实例一个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: 登录失败,请在弹出的窗口操作,或重新登录

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.