V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
cheerzeng
V2EX  ›  Python

requests 登录 豆瓣后还是不能访问相册 API

  •  
  •   cheerzeng · 2016-03-13 12:44:36 +08:00 · 3387 次点击
    这是一个创建于 3180 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天想试一下豆瓣的 API ,发现相册 API 是需要登录后才可以访问的,于是用 requests.session 去登陆,然后再 get 相册,但是还是相应找不到资源。求指教。

    import requests
    s = requests.Session()
    r = s.post('https://accounts.douban.com/login', data={'form_email':'[email protected]', 'form_password':'xxxx'})

    p = s.get(''https://api.douban.com/v2/photo/:74539453')
    print p.content

    输出:
    {"msg":"uri_not_found","code":1001,"request":"GET \/v2\/photo\/:74539453"}

    补充:我从 r.content 里面有看到我的账号信息,因此我判断是登录成功了。

    第 1 条附言  ·  2016-03-14 20:07:28 +08:00
    标题的问题已经确认是冒号的原因,谢谢大家~
    15 条回复    2018-06-24 21:42:10 +08:00
    feather12315
        1
    feather12315  
       2016-03-13 12:50:58 +08:00 via Android
    放弃 API 吧,直接爬
    cheerzeng
        2
    cheerzeng  
    OP
       2016-03-13 12:53:05 +08:00
    @feather12315 有想过,就是想先弄明白这个原因,看有没有知道的
    Caratpine
        3
    Caratpine  
       2016-03-13 13:03:17 +08:00 via iPhone
    api 请求的 url 写错了,冒号去掉试试
    just1
        4
    just1  
       2016-03-13 13:09:46 +08:00 via Android
    遇到过类似情况,后来改用 httplib2
    cheerzeng
        5
    cheerzeng  
    OP
       2016-03-13 13:53:13 +08:00 via Android
    cheerzeng
        6
    cheerzeng  
    OP
       2016-03-13 13:55:39 +08:00 via Android
    @just1 我以前用过 urllib2 ,然后看到有人建议用 requests 才用的,这也太难以接受了
    Jaylee
        7
    Jaylee  
       2016-03-13 13:56:13 +08:00
    @cheerzeng :id 代表是一个参数 冒号要去掉
    cheerzeng
        8
    cheerzeng  
    OP
       2016-03-13 14:01:15 +08:00 via Android
    @Jaylee 好吧,我晚点试试,谢谢,@Caratpine
    just1
        9
    just1  
       2016-03-13 15:12:21 +08:00 via Android
    @cheerzeng urllib2 确实难受, httplib2 不错的
    cheerzeng
        10
    cheerzeng  
    OP
       2016-03-13 23:59:50 +08:00
    @Jaylee API 首页就有写,我没看到,真是罪过。
    话说, API 有一些限制,然后我直接用用 http get, 我一直在下一个相册的照片,但是到了某一个照片的时候就回复验证码的页面了,然后失败。
    一开始我以为是被判断出来时机器登录,但是我换成其他相册,脚本再跑又是可以的,换回去原来的相册的同一个照片,还是有验证码返回(同一个相册的过几张照片,也还能继续下载),不知道这是什么机制??
    Jaylee
        11
    Jaylee  
       2016-03-14 10:05:32 +08:00
    @cheerzeng 有访问频率限制吧
    cheerzeng
        12
    cheerzeng  
    OP
       2016-03-14 10:43:50 +08:00 via Android
    @Jaylee 但是我退出脚本,然后从另外一个照片 id 继续跑,又是可以的,稍微跑一下再试原来的那个照片 id ,又不行,想不出是什么原因
    armstrong
        13
    armstrong  
       2016-03-14 14:11:05 +08:00
    会不会是你没有修改 user-agent ?
    cheerzeng
        14
    cheerzeng  
    OP
       2016-03-14 19:15:57 +08:00 via Android
    @armstrong 标题那个原因找到了,就是冒号,忘记改内容了,现在就是关于特定照片 id 会失败的问题
    labuboco
        15
    labuboco  
       2018-06-24 21:42:10 +08:00
    比较好奇。请问您这个登录方式可以获取 设置为私人的相册 的图片嘛?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5494 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 07:05 · PVG 15:05 · LAX 23:05 · JFK 02:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.