0

私はトリップアドバイザーのウェブサイトからレビューを取得しようとしています。ウェブサイトの画像のほとんどが動的に読み込まれるので、私はスプラッシュのJavaScriptレンダリングサービスを使ってページを生成します。ここからダイナミックローディング画像をクロールしています。

イメージの一部が読み込まれていて、一部が読み込まれていないという問題があります。私は10秒(最大)までの時間を待つスプラッシュを設定しようとしたとの結果がまだ同じである https://www.tripadvisor.com.sg/ShowUserReviews-g294265-d1770798-r446535418-Marina_Bay_Sands-Singapore.html

:ここ

は、私がクロールするレビューのURLです。ここで

はスプラッシュで使用された私のコードです:あなたは、他のすべてを見ることができるようにClick to view the image

function main(splash) 
    local url = splash.args.url 
    assert(splash:go(url)) 
    assert(splash:wait(10)) 
    splash:set_viewport_full() 
    return { 
    html = splash:html(), 
    png = splash:png(), 
    har = splash:har(), 
    } 
end 

そして、ここでは、スプラッシュ(フッターセクションをCroped)によって生成された結果画像でありますダイナミックローディングイメージが読み込まれました(レビューのイメージは赤い四角形内にあるはずです)。私はhtmlをチェックして、imgタグが存在することを発見しましたが、src属性は実際の画像のURLの代わりに1つのピクセル画像である ".../x.gif"でした。

このような問題を抱えている人がいますか、それはなぜですか?

答えて

0

画像をスクロールすると、画像が読み込まれているようです。しかし、スプラッシュを使用してスクロールしてみたところ、遅延を設定しても画像をレンダリングできませんでした。

レスポンス本文を見ると、画像はJavaScript配列のlazyImgsに含まれており、各画像にIDが付いていることがわかります。レビューをトラバースするときにプレースホルダ要素から各IDを読み取って、JavaScript配列から画像を取得するために使用できます。これはおそらく最も簡単な解決策です。

関連する問題