如何在Python中编写curl GET请求以减少解析时间

0 投票
2 回答
6683 浏览
提问于 2025-04-18 11:08

我在PHP中写了一个基本的curl GET请求,用来和网站的API进行交互:

$headers = array(
  "Content-type: text/xml;charset=\"windows-1251\"",
  "Host:api.content.com",
  "Accept:*/*",
  "Authorization:qwerty"
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api.content.com/v1.xml");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$data = curl_exec($ch);
$f = new SimpleXMLElement($data);

#echo $data;
$total = $f['total'];
curl_close($ch);
}

如果我想用Python来写这个请求,并且希望这个请求能在不同的子进程中运行,以减少解析时间,最好的方法是什么呢?

2 个回答

3

你可以使用以下任意一个模块:

  • urllib2(这个在Python中是默认自带的)
  • requests(这个需要你自己安装)

示例:

>>> import requests
>>> r = requests.get('http://example.com/')
>>> print r.text
.
.
>>> import urllib2
>>> response = urllib2.urlopen('http://example.com')
>>> print response.info()
.
.
>>> html = response.read()
>>> print html
.
.
3

你可以使用requests这个库,具体内容可以查看requests的文档;

>>> import json
>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}
>>> headers = {'content-type': 'application/json'}

>>> r = requests.post(url, data=json.dumps(payload), headers=headers)

撰写回答