2013-04-28 126 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