Python相当于PHP curl请求

时间:2013-11-27 21:49:13

标签: php python curl

我正在使用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代码。

4 个答案:

答案 0 :(得分:3)

使用pycurl它是lib curl的python实现。

import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, "http://www.python.org/")
c.setopt(pycurl.HTTPHEADER, ["Accept:"])
...

您可以在http://pycurl.sourceforge.net/doc/curlobject.html

找到更多示例和文档

答案 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