无法将现有的scraper转换为xmlhttp请求

时间:2017-06-03 14:57:21

标签: vba web-scraping xmlhttprequest

我写了一个脚本来从任何随机网站获取标题。它完美无瑕。我用Internet Explorer编写了这个。我已经尝试了很多但是使用xmlhttp请求可以做同样的事情,因为性能是一个需要考虑的大问题。我到目前为止所尝试的是:

Sub Title_scraping()
Dim IE As Object
Dim doc As Object, cel As Range

For Each cel In Range("A1:A5")
    Set IE = CreateObject("InternetExplorer.Application")
    IE.navigate cel.Value

    While IE.Busy
        DoEvents
    Wend

    Set doc = IE.document
    x = x + 1
    Cells(x, 2) = doc.title
Next cel
End Sub

我尝试过的网站并获得了结果:

https://stackoverflow.com/documentation/
https://codereview.stackexchange.com/
https://yts.ag/browse-movies

1 个答案:

答案 0 :(得分:0)

结合您的代码和发布的代码here,这是您的最终代码:

Sub GetData()
Dim title As String
Dim objHttp As Object, cel As Range, x As Long
Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")

For Each cel In Range("A1:A5")
    objHttp.Open "GET", cel.Value, False
    On Error Resume Next
    objHttp.send ""

    title = objHttp.responseText
    If InStr(1, UCase(title), "<TITLE>") Then
        title = Mid(title, InStr(1, UCase(title), "<TITLE>") + Len("<TITLE>"))
        title = Mid(title, 1, InStr(1, UCase(title), "</TITLE>") - 1)
    Else
        title = ""
    End If
    x = x + 1
    Cells(x, 2) = title
Next cel

End Sub