【发布时间】:2020-08-19 06:26:30
【问题描述】:
我目前正在尝试从 this Reddit Page 抓取信息。我的目标是让 excel 在新选项卡中打开所有帖子,然后我想从每个页面中抓取信息,因为起始页面没有那么多信息。
过去几个小时我一直在尝试解决这个问题,但我承认我对如何做到这一点感到很困惑,只是总体上不确定下一步该做什么,所以任何指点都将不胜感激!
这是我当前的代码,它工作得很好,但正如我所说,我不确定接下来应该做什么来打开它找到的链接并抓取每一页的数据。 链接从第一页被刮掉,然后现在添加到我的电子表格中,但如果可能的话,我想跳过这一步,一次刮掉它们。
谢谢! :)
Sub GetData()
Dim objIE As InternetExplorer
Dim itemEle As Object
Dim upvote As Integer, awards As Integer, animated As Integer
Dim postdate As String, upvotepercent As String, oc As String, filetype As String, linkurl As String, myhtmldata As String, visiComments As String, totalComments As String, removedComments As String
Dim y As Integer
Set objIE = New InternetExplorer
objIE.Visible = False
objIE.navigate (ActiveCell.Value)
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
y = 1
For Each itemEle In objIE.document.getElementsByClassName("flat-list buttons")
visiComments = itemEle.getElementsByTagName("a")(0).innerText
linkurl = itemEle.getElementsByTagName("a")(0).href
Sheets("Sheet1").Range("A" & y).Value = visiComments
Sheets("Sheet1").Range("B" & y).Value = linkurl
y = y + 1
Next
End Sub
【问题讨论】:
-
@QHarr 我基本上是在尝试打开每个链接(href),然后为每个链接抓取一些 html 元素并将其输出到我的电子表格。因此,要抓取的数据是,例如投票数,输出将是一个数字。
-
% Upvoted 是这些页面唯一的附加信息,是的,但这对我的项目非常重要,我只是想尽可能地自动化。
-
是的!因为百分比是真正让我陷入困境的原因。
标签: html excel vba internet-explorer web-scraping