2016-11-04 5 views
0

Привет, все, что я новичок в Скрап-сцены, и хотел бы помочь получить информацию о том, как получить все изображения с определенным именем класса с веб-страницы.Сброс веб-сайта для изображений, которые интенсивно обрабатываются AJAX

Проблема заключается в том, что все это построено с помощью AJAX и оно загружает больше изображений при прокрутке вниз. Естественно, загрузка веб-сайта с помощью элемента управления Webbrowser загружает только количество изображений по умолчанию, прежде чем вы начнете прокрутку вниз.

К счастью, я могу получить общее количество изображений, которые будут на этой странице для какой-либо конкретной категории.

Как я могу получить ВСЕ изображения, прежде чем запускать команду 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

Общая идея заключается в том, использовать веб-инструмент разработчика (Firebug или Google инструмент разработчика зависит, какой браузер вы используете), чтобы выяснить, как сайт отправляет запрос Ajax.

Для firefox перейдите на нужную страницу, F12, перейдите на вкладку Net, затем XHR суб-вкладку.

Сначала очистить вкладку firebug xhr.

прокрутите страницу.

Назад к панели Firebug, вы получите информацию о запросе.

Развернуть +.

Перейдите на вкладку сообщений, после чего вы сможете увидеть параметры сообщения.

Отправьте запрос от клиента с параметрами.

Но если веб-сайт требует входа в систему, чтобы просмотреть содержимое, то его другая история из-за политики того же происхождения.

+0

Невозможно найти + для POST. См. OP для изображения. – StealthRT

+1

Попробуйте использовать Firebug. – uonlyYOLOonce

 Смежные вопросы

  • Нет связанных вопросов^_^