学術的な意味だけで、他のサイトからデータを取得するためのスパイダーを開発しようとしています。このウェブサイトをクロールしようとして います。なんで?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 サポートをオフにしても、配列には画像のディレクトリが含まれているということです。したがって、唯一の説明は、サーバー側から来たということです。そして質問は、それがサーバー側から来た場合、なぜ私のカールがそれを取得しないのですか?
ありがとう、誰かが私を理解してくれることを願っています。
同じページの262行目でそのスクリプトを確認できます