2013-04-28 112 views
0

我試圖開發一個蜘蛛來從其他網站獲取數據,僅用於學術意義。 很好,我試圖抓取這個網站:http://urlmin.com/ngz 如果發生什麼情況: 我可以得到我想要的所有數據,但照片的目錄。 爲什麼?因爲它是用javascript加載的;直到這裏罰款。 下面是加載圖像元素的js代碼DOM加載後:部分內容不包含CURL請求

var exibirImg = new ExibirImagens(); 
exibirImg.Imagens = [ 

    new ItemImagem(
     '../fotosanuncios/13886-Papucha 20074.JPG', 
     '../fotosanuncios/13886-p-Papucha 20074.JPG'), 

    new ItemImagem(
     '../fotosanuncios/13886-Motores Novos.JPG', 
     '../fotosanuncios/13886-p-Motores Novos.JPG'), 

    new ItemImagem(
     '../fotosanuncios/13886-Panther reformada5.JPG', 
     '../fotosanuncios/13886-p-Panther reformada5.JPG'), 

    new ItemImagem(
     '../fotosanuncios/13886-Panther reformada 2007.JPG', 
     '../fotosanuncios/13886-p-Panther reformada 2007.JPG'), 

]; 
exibirImg.PreLoad(); 
exibirImg.Titulo = 'Oferta A Gtr 323'; 
exibirImg.EscreveImagens(); 
exibirImg.TimeOutJs = 3500; 
exibirImg.ImagemNotFound = 'imagens/ImagemNotFound.png'; 
exibirImg.IdImagemPrincipal = 'imagemPrincipalPF'; 
exibirImg.IdImagemMini = 'imagensPequenasPF'; 

這將是非常容易的,如果我的捲曲獲得類似上面的JS,但它不。 它有這樣的:

var exibirImg = new ExibirImagens(); 
exibirImg.Imagens = [ 

]; 
exibirImg.PreLoad(); 
exibirImg.Titulo = 'Oferta A Gtr 323'; 
exibirImg.EscreveImagens(); 
exibirImg.TimeOutJs = 3500; 
exibirImg.ImagemNotFound = 'imagens/ImagemNotFound.png'; 
exibirImg.IdImagemPrincipal = 'imagemPrincipalPF'; 
exibirImg.IdImagemMini = 'imagensPequenasPF'; 

exibirImg.Iniciar(); 

同樣,陣列必須加載AJAX或東西。 但是真正的難題在於,如果我關閉瀏覽器的javascript支持,數組仍然會附帶圖像的目錄。所以唯一的解釋是它來自服務器端。問題是,如果它來自服務器端,爲什麼我的捲曲不能得到它?

謝謝,希望有人能理解我。

您可以檢查腳本在同一頁上的行262

+0

還沒有人? :P – 2013-04-28 02:10:23

回答

1

工作對我來說:

$url = 'http://urlmin.com/ngz'; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

if ($result = curl_exec($ch)) 
{ 
    echo $result; 
} 
else 
echo "cURL error: ".curl_error($ch); 

curl_close($ch); 

而且$result包含:

var exibirImg = new ExibirImagens(); 
exibirImg.Imagens = [ 

    new ItemImagem(
     '../fotosanuncios/13886-Papucha 20074.JPG', 
     '../fotosanuncios/13886-p-Papucha 20074.JPG'), 

    new ItemImagem(
     '../fotosanuncios/13886-Motores Novos.JPG', 
     '../fotosanuncios/13886-p-Motores Novos.JPG'), 

    new ItemImagem(
     '../fotosanuncios/13886-Panther reformada5.JPG', 
     '../fotosanuncios/13886-p-Panther reformada5.JPG'), 

    new ItemImagem(
     '../fotosanuncios/13886-Panther reformada 2007.JPG', 
     '../fotosanuncios/13886-p-Panther reformada 2007.JPG'), 

]; 
exibirImg.PreLoad(); 
+0

仍然適用於我,即使真實的網址。 – 2013-04-28 17:59:41

+0

BUllocks,anyidea爲什麼不適合我? – 2013-04-28 18:01:39

+0

嘗試將$結果保存到文件並檢查它。可能你輸出到瀏覽器錯誤。或有點像回聲htmlspecialchars($結果) – 2013-04-28 18:03:41