Rumah > Soal Jawab > teks badan
需求
写一个可以自动获取“腾讯微博开发平台”申请中的oauth_verifier参数值的脚本。
正常情况下,需要人工从浏览器地址栏复制oauth_verifier的值,这个可以模拟发送http请求包来解决,但是,好像其中有执行了js脚本,以前没碰到过,不知道怎么解决。
.
方便理解,我上传下可以执行文件demo
腾讯微博API Demo
当执行第2步的时候,会自动弹出一个网页,然后登录要授权的qq,接着就可以从浏览器地址栏中获取oauth_verifier参数的值
我想要将第2步获取oauth_verifier参数的值直接用python代码实现
使用python模拟浏览器发送http请求:
请求的url:
1 2 |
|
正常情况下,应该返回如下响应:
1 2 3 4 5 6 |
|
但是,我执行如下代码的时候,返回的是如下数据:
你的浏览器不支持javascript,请设置您的浏览器开启javascript支持!
python代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
PHP中文网2017-04-10 13:12:05
http://open.t.qq.com/cgi-bin/authorize?oauth_token=xxx&checkStatus=checked&checkType=authorize&sessionKey=xxx
上面这个 URL 返回的是一个重定向,requests 碰到重定向会自动跟着跳转,
有可能它已经自动帮你跳转到 http://www.qq.com?oauth_token=xxx&oauth_verifier=mmmmm&openid=xxxx&openkey=xxx 这个 URL 上了。
官方描述:http://docs.python-requests.org/en/latest/user/quickstart/#redirection-and-history
解决办法1:通过 Response.history 取得最终访问到的 url,然后解析出 oauth_verifier
解决办法2: 禁用重定向自动跳转功能requests.get(url,params=params, headers=headers, allow_redirects=False)
P.S. 以上其实是猜测,requests 有没有