0

下面的 PHP 代码从服务器 A 获取 html 到服务器 B。我这样做是为了规避浏览器的同域策略。(jQuery的JSONP也可以用来实现,但我更喜欢这种方法)

<?php
 /* 
   This code goes inside the body tag of server-B.com.
   Server-A.com then returns a set of form tags to be echoed in the body tag of Server-B 
 */
 $ch = curl_init();
 $url = "http://server-A.com/form.php";
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_HEADER,FALSE);
 curl_exec($ch);     //   grab URL and pass it to the browser
 curl_close($ch);    //   close cURL resource, and free up system resources
?>

如何在 Python 中实现这一点?我确定 Python 中也有 Curl 实现,但我还不知道该怎么做。

4

3 回答 3

1

Python 有 cURL 包装器,但首选的方法是使用urllib2

请注意,您在 PHP 中的代码会检索整个页面并打印出来。等效的 Python 代码是:

import urllib2

url = 'http://server-A.com/form.php'
res = urllib2.urlopen(url)
print res.read()
于 2010-09-29T01:25:06.977 回答
0

我很确定这就是你要找的东西:http: //pycurl.sourceforge.net/ 祝你好运!

于 2010-09-29T01:25:42.620 回答
0

您可以使用请求库

样品获取电话

import requests

def consumeGETRequestSync():
 params = {'test1':'param1','test2':'param2'}
 url = 'http://httpbin.org/get'
 headers = {"Accept": "application/json"}
 # call get service with headers and params
 response = requests.get(url, headers = headers,data = params)
 print "code:"+ str(response.status_code)
 print "******************"
 print "headers:"+ str(response.headers)
 print "******************"
 print "content:"+ str(response.text)

consumeGETRequestSync()

您可以查看此博客文章http://stackandqueue.com/?p=75

于 2016-03-04T11:22:34.227 回答