2016-11-04 9 views
0

私はScrappingシーンが初めてで、ウェブページから特定のクラス名を持つすべての画像を取得する方法についての情報を得るのに役立つと思います。AJAXを使用した画像のWebサイトをスクラップする

問題は、すべてがAJAXで構築され、下方向にスクロールするにつれてより多くの画像しか読み込まれないということです。もちろん、ウェブブラウザーコントロールでウェブサイトをロードすると、スクロールダウンを開始する前にデフォルトの数の画像しかロードされません。

幸いにも、特定のカテゴリのページに表示される画像の総量を取得できます。

htmlagilitypackコマンドを実行して特定のクラス名を持つすべてのイメージを取得する前に、すべてのイメージを取得するにはどうすればよいですか?

最初に約30枚の画像が読み込まれます。どのカテゴリを選択するかによっては、合計で800枚以上の画像で構成できます。下にスクロールすると、別の30枚の画像が読み込まれます。

このプロセスを自動化し、すべての画像の下部に達したときを知ることにはどんな手口がありますか?これまでのページの30枚の画像のデフォルトを取得

私のコードはこれです:私はの残りの部分を取得アプローチする最良の方法を知っているように前に

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim doc As New HtmlAgilityPack.HtmlDocument() 

    htmlCode = WebBrowser1.Document.Body.OuterHtml   
    doc.LoadHtml(htmlCode) 

    Dim totalNumOfPosters() As String = doc.DocumentNode.SelectSingleNode("//span[@class='main-title-divider']").InnerText.Split(" ") 

    Debug.WriteLine(totalNumOfPosters(0)) 'Shows total num of images 

    For Each img As HtmlNode In doc.DocumentNode.SelectNodes("//img[contains(@class,'img-poster')]") 
     posterArray.Add(img.Attributes("src").Value.ToString) 
    Next 
End Sub 

私はちょうどこのような何かを行っている人が必要画像!

ありがとうございます!

enter image description here

答えて

1

一般的なアイデアは、サイトはAjaxリクエストを送信する方法を把握する(Firebugのか、Googleの開発者向けツールは、あなたが使用しているブラウザによって異なります)あなたのWeb開発ツールを使用しています。

firefoxの場合は、F12キーを押して[Net]タブに移動し、XHR サブタブに移動します。

最初にfirebug xhrタブをクリアしてください。

ウェブページをスクロールします。

Firebugパネルに戻ると、リクエスト情報が表示されます。

+を展開します。

投稿タブに移動すると、投稿パラメータが表示されます。

パラメータを使用してクライアントから要求を送信します。

しかし、ウェブサイトがコンテンツを見るためにログインする必要がある場合は、同じ起源のポリシーのために別の話があります。

+0

POSTは+を見つけます。画像についてはOPを参照してください。 – StealthRT

+1

Firebugを使用してみてください。 – uonlyYOLOonce

関連する問題