玩蛇网提供最新Python编程技术信息以及Python资源下载!

python模拟http请求,提示开启javascript支持的问题

需求
写一个可以自动获取“腾讯微博开发平台”申请中的oauth_verifier参数值的脚本。
正常情况下,需要人工从浏览器地址栏复制oauth_verifier的值,这个可以模拟发送http请求包来解决,但是,好像其中有执行了js脚本,以前没碰到过,不知道怎么解决。

.

方便理解,我上传下可以执行文件demo

腾讯微博API Demo
当执行第2步的时候,会自动弹出一个网页,然后登录要授权的qq,接着就可以从浏览器地址栏中获取oauth_verifier参数的值
我想要将第2步获取oauth_verifier参数的值直接用python代码实现

使用python模拟浏览器发送http请求:
请求的url:

http://open.t.qq.com/cgi-bin/authorize?oauth_token=xxx&checkStatus=checked&checkType=authorize&sessionKey=xxx

正常情况下,应该返回如下响应:

<html>  
<head>  
<meta http-equiv="refresh" content="0;url=http://www.qq.com?oauth_token=xxx&oauth_verifier=mmmmm&openid=xxxx&openkey=xxx">  
</head>  
</html>

但是,我执行如下代码的时候,返回的是如下数据:

你的浏览器不支持javascript,请设置您的浏览器开启javascript支持!

python代码如下:

def GetCode():
    #Get参数
    params = {'oauth_token':'xxxx','checkStatus':'checked','checkType':'authorize','sessionKey':'xxx'}
    url = 'http://open.t.qq.com/cgi-bin/authorize'
    #http请求头
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36",
        "Host":"open.t.qq.com",
        "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
        "Accept-Language":"zh-CN,zh;q=0.8,en;q=0.6,ja;q=0.4",
        "Accept-Encoding":"gzip,deflate,sdch",
        "Referer":"http://xui.ptlogin2.qq.com/cgi-bin/qlogin?............",
        "Connection":"keep-alive",
        "Cookie":"...................................."
    }
    r = requests.get(url,params = params,headers=headers)
    print r.conten

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

P.S. 以上其实是猜测,requests 有没有

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19947.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月17日 - 17时02分50秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules