【发布时间】:2016-11-04 18:44:49
【问题描述】:
我是 Scraping 场景的新手,希望获得有关如何从网页获取具有特定类名的所有图像的信息。
问题在于它全部使用 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
我只需要以前做过类似事情的人告诉我获取其余图像的最佳方法!
【问题讨论】:
标签: ajax vb.net web-scraping web-crawler html-agility-pack