Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 当源文件不可用时,如何从web上刮取数据';我没有网页的内容_Vba_Web Scraping - Fatal编程技术网

Vba 当源文件不可用时,如何从web上刮取数据';我没有网页的内容

Vba 当源文件不可用时,如何从web上刮取数据';我没有网页的内容,vba,web-scraping,Vba,Web Scraping,我试图从中提取数据,但我面临的问题是,它的源代码不包含网页上可用的内容。我相信它是照本宣科的 我怎么得到它?我得到一个建议,使用硒?如果你们能给我其他建议,我会很有帮助的。谢谢 With xhr .Open "GET", URL, False .send If .readyState = 4 And .Status = 200 Then Set internetdata = New MSH

我试图从中提取数据,但我面临的问题是,它的源代码不包含网页上可用的内容。我相信它是照本宣科的

我怎么得到它?我得到一个建议,使用硒?如果你们能给我其他建议,我会很有帮助的。谢谢

With xhr

            .Open "GET", URL, False
            .send

            If .readyState = 4 And .Status = 200 Then
                Set internetdata = New MSHTML.HTMLDocument
                internetdata.body.innerHTML = .responseText
                htmlT = internetdata.body.outerHTML


            Else
                MsgBox "Error" & vbNewLine & "Ready state: " & .readyState & _
                vbNewLine & "HTTP request status: " & .Status
            End If

        End With

从这个代码(字符串)中,我试图获取网页上所有可用的文本。但是没有在这里获取所有内容。

试试这个。它应该为您提供每种产品的所有描述:

Sub Web_Data()
    Dim IE As New InternetExplorer, html As HTMLDocument
    Dim topic As Object

    With IE
        .Visible = True
        .navigate "http://www.webcollage.net/MainApp/preview-ppp?module=dellbtoc&site=epartner&wcpc=1512144817149&view=live&rcpName=Webcollage"
        While .Busy = True Or .readyState < 4: DoEvents: Wend
        Set html = .document
    End With

    Application.Wait Now + TimeValue("00:00:05") ''if you haven't found your data already, just increase the time

    For Each topic In html.getElementsByClassName("wc-rich-content-description")
        r = r + 1: Cells(r, 1) = topic.innerText
    Next topic

    IE.Quit
End Sub
子网站_数据()
Dim IE作为新的InternetExplorer,html作为HTMLDocument
模糊主题作为对象
与IE
.Visible=True
.导航“http://www.webcollage.net/MainApp/preview-ppp?module=dellbtoc&site=epartner&wcpc=1512144817149&view=live&rcpName=Webcollage"
While.Busy=True或.readyState<4:DoEvents:Wend
设置html=.document
以
Application.Wait Now+TimeValue(“00:00:05”)''如果您还没有找到您的数据,只需增加时间
对于html.getElementsByClassName(“wc丰富内容描述”)中的每个主题
r=r+1:单元格(r,1)=topic.innerText
下一个话题
即退出
端接头

我建议搜索名为fiddler web debugger的东西。它将允许您查看发生的所有请求和响应。希望其中一个能包含你想要的信息。然后您可以尝试编写一些代码来发送请求以获取该信息。如果您使用VBA,那么自动化IE可能是一个不错的方法。您可能没有看到预期的内容,因为页面是在加载原始响应后动态构建的。我们可以使用selenium吗?或者我们不能得到所有的标签(节点)并逐个检查它吗?只是一个想法,但我不知道该怎么做。我很可能是错的。@Tim我使用的是IE自动化,它没有给我实际的页面内容,因为我相信它被脚本隐藏了。@garbb我认为我在office工作时无法访问此应用程序。但绝对可以在我家试一试。但现在我需要的是真正的解决方案,只使用我得到的excel。在注释
8
中,您要求对
中的文本使用“Strong and silent”
。现在再看一遍你的帖子,我可以看到你期待所有的内容。你到底想抓什么。顺便说一句,要执行上述代码,请确保添加对库的引用:
Microsoft Internet控件
Microsoft HTML对象库
@Sahin感谢Sahin的努力,但当我说整个内容时,它实际上意味着所有内容…包括标题段落…等等我们在页面上看到的任何内容。我想寻找关键字(我有大约500个关键字)来查看网页,我想找到该关键字在页面上是否可用,如果不可用,我想标记该关键字。是否要获取此类中的所有内容
wc rich content description
?具体点,男人!!您之前的评论内容太广泛。请参阅更新。我已经编辑过了。顺便说一句,你执行了之前的一个吗?对不起,如果我听起来太模糊了,你提到的类名太具体了,我有多个网页,不管怎样,我正在从办公室注销,我明天会给你回复。如果类名与所有URL一致(我没有注意到..oops)。我将签字确认并对答复进行评分。谢谢你在这里花了这么多时间:)