我正在尝试开发蜘蛛来获取其他网站的数据,仅用于学术意义。 很好,我正在尝试抓取这个网站:http://urlmin.com/ngz 如果那样会发生什么: 我可以获得我想要的所有数据,但是可以获得照片的目录。 为什么?因为它加载了javascript;直到这里它的罚款。 这是在加载dom后加载图像元素的js代码:
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';
如果我的CURL像上面那样得到了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支持,阵列仍会附带图像的目录。所以唯一的解释是它来自Server Side。问题是,如果它来自服务器端,为什么地狱我的卷曲不能得到它?
谢谢,希望有人能理解我。
您可以在第262行
的同一页上查看该脚本答案 0 :(得分: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();