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

2016-03-13 12:44:36 +08:00
 cheerzeng

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

import requests
s = requests.Session()
r = s.post('https://accounts.douban.com/login', data={'form_email':'xxxx@163.com', '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 里面有看到我的账号信息,因此我判断是登录成功了。

3280 次点击
所在节点    Python
15 条回复
feather12315
2016-03-13 12:50:58 +08:00
放弃 API 吧,直接爬
cheerzeng
2016-03-13 12:53:05 +08:00
@feather12315 有想过,就是想先弄明白这个原因,看有没有知道的
Caratpine
2016-03-13 13:03:17 +08:00
api 请求的 url 写错了,冒号去掉试试
just1
2016-03-13 13:09:46 +08:00
遇到过类似情况,后来改用 httplib2
cheerzeng
2016-03-13 13:53:13 +08:00
cheerzeng
2016-03-13 13:55:39 +08:00
@just1 我以前用过 urllib2 ,然后看到有人建议用 requests 才用的,这也太难以接受了
Jaylee
2016-03-13 13:56:13 +08:00
@cheerzeng :id 代表是一个参数 冒号要去掉
cheerzeng
2016-03-13 14:01:15 +08:00
@Jaylee 好吧,我晚点试试,谢谢,@Caratpine
just1
2016-03-13 15:12:21 +08:00
@cheerzeng urllib2 确实难受, httplib2 不错的
cheerzeng
2016-03-13 23:59:50 +08:00
@Jaylee API 首页就有写,我没看到,真是罪过。
话说, API 有一些限制,然后我直接用用 http get, 我一直在下一个相册的照片,但是到了某一个照片的时候就回复验证码的页面了,然后失败。
一开始我以为是被判断出来时机器登录,但是我换成其他相册,脚本再跑又是可以的,换回去原来的相册的同一个照片,还是有验证码返回(同一个相册的过几张照片,也还能继续下载),不知道这是什么机制??
Jaylee
2016-03-14 10:05:32 +08:00
@cheerzeng 有访问频率限制吧
cheerzeng
2016-03-14 10:43:50 +08:00
@Jaylee 但是我退出脚本,然后从另外一个照片 id 继续跑,又是可以的,稍微跑一下再试原来的那个照片 id ,又不行,想不出是什么原因
armstrong
2016-03-14 14:11:05 +08:00
会不会是你没有修改 user-agent ?
cheerzeng
2016-03-14 19:15:57 +08:00
@armstrong 标题那个原因找到了,就是冒号,忘记改内容了,现在就是关于特定照片 id 会失败的问题
labuboco
2018-06-24 21:42:10 +08:00
比较好奇。请问您这个登录方式可以获取 设置为私人的相册 的图片嘛?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/263151

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX