【发布时间】:2020-10-31 11:40:40
【问题描述】:
我目前使用 IE 进行一些网页抓取,因为您可能知道 IE 支持将在 2021 年 9 月结束。我现在想更新我的这段代码以使用 Windows Edge,但我不确定如何去做。
其余的代码都很好,我唯一需要更改的是使用另一个 Web 浏览器。不是每个人都会安装 Chrome 或 Firefox,所以我没有和他们一起去。但是 MS Edge 更新到所有窗口 PC
理想情况下,我希望它使用 Edge 或 IE,检查 PC 上安装了哪个并使用那个。但是我不知道该怎么做。我试图用谷歌搜索答案,但是它提到了 Shells,我不确定如何为此编写代码。
PS 我会将工作表发送给其他用户,因此它需要能够在他们的 PC 上工作,而不仅仅是我的。
Dim Html As HTMLDocument
Dim objIE As Object
Dim Y As Integer '''integer variable we'll use as a counter
Dim result As String ''''string variable that will hold our result link
Dim pageNumber As Long ''' Number of pages.
Dim nextPageElement As Object '''page element
Dim HtmlText As Variant '''for html data
Dim myCounter As Long '''counting the number of loops data goes to sheet10 q2
Dim wsSheet As Worksheet
Dim wb As Workbook
Set wb = ThisWorkbook
Set wsSheet = wb.Sheets("Sheet2")
Y = 0
'''################ Internet Explorer ###################
Set objIE = New InternetExplorer 'initiating a new instance of Internet Explorer and asigning it to objIE
objIE.Visible = True
''' Url to NAVIGATE is taken from sheet10 as is the number of pages
objIE.navigate Sheets("Sheet10").Range("F2").Value & Replace(Worksheets("Sheet10").Range("G2") & Range("H2").Value, " ", "+")
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop '''wait here a few seconds while the browser is busy
Set Html = objIE.document
'The Parent Class is set in Sheet10 C2
Set elements = Html.getElementsByClassName(Sheets("Sheet10").Range("C2")) ' parent CLASS
'''FOR LOOP
For Each element In elements
一如既往地提前感谢。
【问题讨论】:
-
是否可以在 Excel 中使用 Web 数据源?然后你就可以完全摆脱使用 VBA 了。
标签: excel vba web-scraping