Vba 抓取 Twitter 详细信息

时间:2021-03-11 16:49:46

标签: excel vba web-scraping twitter screen-scraping

我在 A 列中有一个 Twitter 网址列表,我正在尝试从中提取一些信息,但是我遇到了很多麻烦。我想把所有东西都涂成黄色

Image of info

我不确定是因为类错误还是因为 Twitter 网址未在 excel 中打开。如果我双击 excel 中的 url 并尝试打开它,我会收到此错误消息。

Url Error message

当我将它们复制并粘贴到浏览器中时,该链接工作正常。我在网上阅读了一些信息,指出 PC 上的 HKEY 可能需要更改 LINK。我为之构建此程序的人遇到的问题是不了解 pc,并且会努力解决任何问题。

我一直使用下面的代码进行抓取,它从来没有让我失望。当它确实从 Twitter 中提取数据时,我收到一条错误消息,请参阅 D + E 列下方的图像。我假设这是与 Twitter 进行一些联系,但无法访问该页面以提取数据。我不使用 IE,因为它不再适用于 twitter,我使用的是 MSXML2.ServerXMLHTTP。

Twitter Error message

这是我用来提取数据的方法,所有列都是一样的,只是类发生了变化,以及它是 Span 还是子级。

''''Element 3 Column D
        If doc.getElementsByClassName("css-1dbjc4n")(0) Is Nothing Then
            wsSheet.Cells(StartRow + myCounter, 4).Value = "-"
        Else
            wsSheet.Cells(StartRow + myCounter, 4).Value = doc.getElementsByClassName("css-1dbjc4n")(0).getElementsByTagName("Span")(0).innerText
        End If
Public Function NewHTMLDocument(strURL As String) As Object

    Dim objHTTP As Object, objHTML As Object, strTemp As String
    
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    objHTTP.setOption(2) = 13056
    objHTTP.Open "GET", strURL, False
    objHTTP.send

    If objHTTP.Status = 200 Then
        strTemp = objHTTP.responseText
        Set objHTML = CreateObject("htmlfile")
        objHTML.body.innerHTML = strTemp
        Set NewHTMLDocument = objHTML
    Else
        'There has been an error
    End If
End Function

问题

问题是不是excel中的url打不开,还是因为数据是动态的,无法提取?

Twitter Link 1 Twitter Link 2

一如既往地感谢您查看并提前为没有添加 HTML 片段而道歉,因为它不允许我发布,我找不到错误,因此删除了 html,它表明 URL 已被缩短,但是找不到它,因此删除了整个 html 片段以便发布。

更新

我以为这个链接在我的帖子里,但我一定是在删除 HTML 代码段时删除了它。我在 Stackoverflow 上找到了这个,但无法让它从我这里工作,没有任何东西可以提取 Link

0 个答案:

没有答案