vba - 是否可以使用 VBA 从 facebook 抓取数据?
问题描述
我想知道 VBA 是否可以从公共 facebook 页面中抓取数据,例如关注者数量或喜欢的数量。我把下面的代码放在一起。
现在我假设面临两个问题:(i) facebook 不再支持 internet explorer 和 (ii) 我不确定 facebook 是否允许抓取。
所以,我想我正在寻找的实际上是一个读取网页源代码的代码。为简单起见:我很乐意使用 Internet Explorer(即跳过问题(i))并读出“其他类似这样的人”的数量。
请参阅附加的屏幕截图,了解 DOM 资源管理器中的类名和我正在寻找的点赞数。用于说明目标图形和 DOM 类名称的屏幕截图。
有任何想法吗?
代码:
Sub social_facebook()
Dim IE As New InternetExplorer
Dim html As HTMLDocument
Dim url As String
url = "https://www.facebook.com/adidasoriginals"
With ActiveSheet
Dim results(0 To 4) ', counter As Long, i As Long
With IE
.Visible = True
.navigate url
While .Busy Or .readyState < 4: DoEvents: Wend
'--------------------------------------------------------------------------
Set html = IE.document
Set HTMLDivElement = html.getElementsByClassName("_59k _2rgt _1j-f _2rgt")
'_59k _2rgt _1j-f _2rgt >> this is - according to my understanding - the class name I am looking for.
Debug.Print HTMLDivElement.innerHTML
.Quit
End With
End With
'-------------------------------------------------------------------------
End Sub
解决方案
接口的getElementsByClassName
方法Document
返回具有所有给定类名的所有子元素的类数组对象。你想要的元素是 class 的第五个元素_59k _2rgt _1j-f _2rgt
,所以代码是这样的:
Set html = IE.document
Set HTMLDivElement = html.getElementsByClassName("_59k _2rgt _1j-f _2rgt")(4)
Debug.Print HTMLDivElement.innerHTML
推荐阅读
- android - Flutter:如何使用flutter获取扫描条码的格式?
- python - 如何在python中将数组拆分为等长的bin?
- javascript - 开玩笑 - 调用模拟函数不计算在内
- c - 扩展无符号整数类型的转换等级
- python - 将系统切换到 Python3 和重定向 Pip 的问题
- python - 如何将图像传输到 Django REST 框架应用程序?
- python - 带有空格或特殊字符的 Python 类型定义
- python - 如何增加数据集的采样频率(重塑、插值?)并用均值填充 Nan 值
- cachegrind - 为什么 wincachegrind 给我 curl_exec 的错误累积时间?
- java - 检测到 Sqoop 套接字超时:从大型机读取数据并插入 Hive 时读取超时