2013-03-15 44 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