Python 将pycurl与cookies一起使用时遇到问题
我尝试使用pycurl从网站获取数据。 早些时候,我在php中编写了一个类似的脚本(也使用了curl),它工作正常,但在python中,我得到了空响应。 php也存在类似的问题——该站点接收post数据,初始化会话并重定向到结果页,但如果不允许cookie,它将返回一个空响应,而不是重定向。我无法访问此网站上的代码。使用COOKIEFILE和COOKIEJAR选项解决了这个问题。 这是php代码:Python 将pycurl与cookies一起使用时遇到问题,python,pycurl,Python,Pycurl,我尝试使用pycurl从网站获取数据。 早些时候,我在php中编写了一个类似的脚本(也使用了curl),它工作正常,但在python中,我得到了空响应。 php也存在类似的问题——该站点接收post数据,初始化会话并重定向到结果页,但如果不允许cookie,它将返回一个空响应,而不是重定向。我无法访问此网站上的代码。使用COOKIEFILE和COOKIEJAR选项解决了这个问题。 这是php代码: <?php $anul = 2009; $idnp = "2000000000000"; $
<?php
$anul = 2009;
$idnp = "2000000000000";
$seria_diploma = "AB000000000";
$url = "http://acte.edu.md/handler.php";
$cookie_file = tempnam("tmp", "cookie");
$curl_session = curl_init($url);
curl_setopt($curl_session, CURLOPT_POST, 1);
$post_fields = "an=$anul&idnp=$idnp&=$seria_diploma&Submit=OK";
curl_setopt($curl_session, CURLOPT_POSTFIELDS,$post_fields);
curl_setopt($curl_session, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_session, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl_session, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl_session);
curl_close($curl_session);
echo $result;
请告诉我您是否有任何建议…问题在于POST参数无效。如果他们没有通过验证,页面将返回空响应
url = "http://acte.edu.md/handler.php"
post_data = dict({
"an":2009,
"idnp":"2000000000000",
"a":"AB000000000",
"Submit":"OK"
})
buf = StringIO.StringIO()
c = pycurl.Curl()
c.setopt(pycurl.URL,url)
c.setopt(pycurl.WRITEFUNCTION, buf.write)
#c.setopt(pycurl.CONNECTTIMEOUT,10000)
cookiefile = os.tempnam(_APP_ROOT_PATH+"temp_files","cookie")
c.setopt(pycurl.COOKIEFILE, cookiefile)
c.setopt(pycurl.COOKIEJAR, cookiefile)
c.setopt(pycurl.FOLLOWLOCATION, 1)
#c.setopt(pycurl.MAXREDIRS, 5)
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, urllib.urlencode(post_data))
c.setopt(pycurl.VERBOSE, True)
c.perform()
response += "ERROR:" + c.errstr()
response += c.getinfo(pycurl.HTTP_CODE).__str__()+ c.getinfo(pycurl.EFFECTIVE_URL)
c.close()