Php 有些内容不随CURL请求提供
我正试图开发一个蜘蛛从其他网站获取数据,只是为了学术意义。 很好,我正在尝试爬网此网站: 如果: 我可以得到我想要的所有数据,但是照片的目录。 为什么?因为它加载了javascript;在这里之前,一切都很好。 下面是加载dom后加载图像元素的js代码:Php 有些内容不随CURL请求提供,php,javascript,curl,remote-server,Php,Javascript,Curl,Remote Server,我正试图开发一个蜘蛛从其他网站获取数据,只是为了学术意义。 很好,我正在尝试爬网此网站: 如果: 我可以得到我想要的所有数据,但是照片的目录。 为什么?因为它加载了javascript;在这里之前,一切都很好。 下面是加载dom后加载图像元素的js代码: var exibirImg = new ExibirImagens(); exibirImg.Imagens = [ new ItemImagem( '../fotosanuncios/13886-Papuch
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支持,数组仍然带有图像的目录。所以唯一的解释是它来自服务器端。问题是,如果它来自服务器端,为什么我的curl不能得到它
谢谢,希望有人能理解我
您可以检查第262行同一页上的脚本是否适用于我:
$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();
废话,你知道为什么我不这么做吗?试着把$result保存到一个文件中,然后检查它。可能您输出到浏览器时出错。或者像echo htmlspecialchars($result)这样的东西,我试过了,难以置信的是,我不知道为什么会这样。当我尝试缩小它的工作,但与真正的URL它不。我已经在本地服务器和远程服务器上进行了尝试。同样。我想它会和请求的类型,http,xlm,有某种关系,可能是?@FernandoFerrari,避免像这样的lexic。