2013-03-15 45 views
1

我正在尝试使用curl php代码下载网页的源代码,但其下载仅适用于其余页面文件的少数页面为空。 我GOOGLE了它,但我没有得到解决方案。使用curl下载网页的源代码

我的源代码是: -

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $strurl); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch,CURLOPT_USERAGENT, 'CURL via PHP'); 
$out = curl_exec($ch); 
$fp = fopen('f1.html', 'w'); 
fwrite($fp, $out); 
fclose($fp); 
curl_close($ch); 

什么选择补充?我错在哪里? 请帮忙。

+0

难道上的卷曲快速搜索,却一无所知。但我的第一个猜测会是某种缓冲区大小,卷曲是否具有排序配置.'CURLOPT_BUFFERSIZE' – 2013-03-15 09:10:01

+0

嘿!感谢您的回复。我试了一切..我的代码正在为少数网站工作。我的意思是那些下载的源代码,但少数文件仍然是空的。我尝试了所有选项。我以为它的内容量很大,但那些正在下载的文件也有大量的内容。所以我没有得到什么问题。 – user1475391 2013-03-15 09:21:22

+0

[某人有类似的问题](http://stackoverflow.com/questions/814149/curl-not-working-for-getting-a-web-page-content-why) – 2013-03-15 09:27:06

回答

0

尝试设置一个表明您是浏览器的用户代理。有些服务器会阻止curl/wget/etc。

例如:Mozilla的/ 5.0(Windows NT的6.1; WOW64)为AppleWebKit/537.22(KHTML,例如Gecko)Chrome浏览器/ Safari浏览器25.0.1364.152/537.22

+0

$ ch = curl_init(); curl_setopt($ ch,CURLOPT_URL,$ strurl); (Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebKit/537.22(KHTML,如Gecko)Chrome/25.0.1364.152 Safari/537.22'); \t curl_setopt($ ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ ch,CURLOPT_HEADER,0); $ out = curl_exec($ ch); $ fp = fopen('f1.html','w'); fwrite($ fp,$ out); fclose($ fp); curl_close($ ch); 试过但同样的问题。只有几个网页越来越下载。我猜代码是好的。我不知道什么地方出问题了。为什么不为少数工作而即时在没有https的舞台上运行仍然不知道。 – user1475391 2013-03-15 09:33:48

+0

粘贴您的完整代码并提供有问题的网址。我会做一些测试。 – 2013-03-15 09:50:32

+1

$ URL = $ _POST [ 'URL'] $ CH = curl_init() curl_setopt($ CH,CURLOPT_URL,$网址) curl_setopt($ CH,CURLOPT_USERAGENT,$ _ SERVER [ 'HTTP_USER_AGENT']) curl_setopt($ CH ,CURLOPT_FOLLOWLOCATION,真) curl_setopt($ CH,CURLOPT_RETURNTRANSFER,1) curl_setopt($ CH,CURLOPT_HEADER,0) curl_setopt($ CH,CURLOPT_ENCODING, “”) curl_setopt($ CH,CURLOPT_AUTOREFERER,真) curl_setopt($ ch,CURLOPT_CONNECTTIMEOUT,120) curl_setopt($ ch,CURLOPT_TIMEOUT,120) curl_setopt($ ch,CURLOPT_MAXREDIRS,10) curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false); $ OUT = curl_exec($ CH) $计划生育=的fopen( 'F1', 'W +') 的fwrite($ fp的,$出) FCLOSE($ FP) curl_close($ CH) – user1475391 2013-03-15 10:02:52