我在Ubuntu 15上....
我需要下载此开放数据CSV http://www.sviluppoeconomico.gov.it/images/exportCSV/prezzo_alle_8.csv
来自此页面
我想使用简单的wget或curl命令行,但如果我尝试例如
curl http://www.sviluppoeconomico.gov.it/images/exportCSV/prezzo_alle_8.csv pippo.csv
结果是
<html><head><title>Richiesta Rifiutata</title></head><body>La URL Richiesta e' stata riufiuta. Contattare l'amministratore di sistema.<br><br>The requested URL was rejected. Please consult with your administrator.<br><br></body></html>
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/1.4.6 (Ubuntu)</center>
</body>
</html>
如果我使用
,结果相同wget http://www.sviluppoeconomico.gov.it/images/exportCSV/prezzo_alle_8.csv
我试过使用简单的php程序
<?php
$url = 'http://www.sviluppoeconomico.gov.it/images/exportCSV/prezzo_alle_8.csv';
print $url;
echo '<br>';
echo '<br>';
//#Set CURL parameters: pay attention to the PROXY config !!!!
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>
在这种情况下,CSV文件的数据会打印在我的浏览器页面上(我要等待它,但它已打印出来....)。
所以,我认为应该可以从命令行使用curl或wget下载数据,可能还有一些我应该设置的参数,但我现在还没有解决方案......
有什么建议/例子吗?
提前谢谢!!
切萨雷
答案 0 :(得分:2)
您需要在-L
命令中使用curl
开关,因为您使用PHP代码中的curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
来执行重定向。
有关此-L
切换的详细信息,请访问:http://curl.haxx.se/docs/manpage.html#-L
还使用以下选项
覆盖默认的curl用户代理字符串(即User-Agent: curl/7.40.0
)
-A "Opera"
对于wget
命令,为useragent string添加以下开关。
-U "Opera"