我正在使用Rauth来查询Beatport API。我正在使用此working example in PHP作为参考。
下面的PHP代码使用请求令牌登录并验证3-legged auth
ini_set('max_execution_time', 500);
$submit = "Login";
$url = $auth_submiturl;
$curl_connection_bp = curl_init();
curl_setopt($curl_connection_bp, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_connection_bp, CURLOPT_URL, $url);
curl_setopt($curl_connection_bp, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($curl_connection_bp, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT6.0; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11");
curl_setopt($curl_connection_bp, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl_connection_bp, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection_bp, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl_connection_bp, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_connection_bp, CURLOPT_VERBOSE, false); // when true, this outputs the oauth_token and oauth_verifier value that are posted to the callback URL
curl_setopt($curl_connection_bp, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($curl_connection_bp, CURLOPT_REFERER, $curl_connection_bp);
curl_setopt($curl_connection_bp, CURLOPT_FAILONERROR, 0);
$post_string = 'oauth_token='.$request_token_info['oauth_token'] . '&username=' . $beatport_login . '&password=' . $beatport_password . '&submit=Login';
curl_setopt($curl_connection_bp, CURLOPT_POST, true);
curl_setopt($curl_connection_bp, CURLOPT_POSTFIELDS, $post_string);
$beatport_response = curl_exec($curl_connection_bp);
$beatport_response = json_decode($beatport_response);
print_r($beatport_response);
我如何在Python中实现这一目标?我想我需要使用urllib,但我无法理解PHP代码。
答案 0 :(得分:3)
使用pycurl它是lib curl的python实现。
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, "http://www.python.org/")
c.setopt(pycurl.HTTPHEADER, ["Accept:"])
...
找到更多示例和文档
答案 1 :(得分:1)
为什么不直接使用请求? http://www.python-requests.org/en/latest/
这个库应该可以轻松地执行这个PHP代码。
答案 2 :(得分:1)
您应该使用urlopen发出请求。
一个简单的例子:
import urllib2
result = urllib2.urlopen("http://www.google.com/")
print result.read()
在这里阅读更多内容: http://docs.python.org/2/library/urllib2.html
Google urlopen代码示例,您将找到所需内容。
答案 3 :(得分:0)
我不打算尝试将PHP代码转换为python,而只是搜索获取此答案的Python方法。有点谷歌搜索,看起来这可能是一个重复:
Oauth client initialization in python for tumblr API using Python-oauth2