Web scraping 将单个网页表编译为单个Excel可读表

Web scraping 将单个网页表编译为单个Excel可读表,web-scraping,Web Scraping,我想为亚利桑那州的所有脊医创建一个总的联系信息列表。董事会网站列出了所有脊医,但我必须点击查看每个人的地址和电话号码 如何将每位脊医的所有信息转换成一个电子表格行格式?这很简单。在您的第一张工作表中,执行“数据>外部数据>来自网站”。粘贴URL,选择主表,然后执行下一步并将其放入A1中 在VBA编辑器中,粘贴并执行以下公式。它将从网站检索所有数据并将其粘贴到Sheet2中。剩下的只是重新组织数据,这不是你问题的主题,所以我把它留给你 Sub ExtractAllData() Dim de

我想为亚利桑那州的所有脊医创建一个总的联系信息列表。董事会网站列出了所有脊医,但我必须点击查看每个人的地址和电话号码


如何将每位脊医的所有信息转换成一个电子表格行格式?

这很简单。在您的第一张工作表中,执行“数据>外部数据>来自网站”。粘贴URL,选择主表,然后执行下一步并将其放入A1中

在VBA编辑器中,粘贴并执行以下公式。它将从网站检索所有数据并将其粘贴到Sheet2中。剩下的只是重新组织数据,这不是你问题的主题,所以我把它留给你

Sub ExtractAllData()
    Dim dest As Range, license As Range
    Dim license_no As String

    Worksheets("Feuil2").Select
    Set dest = Worksheets("Feuil2").Range("A1")
    Set license = Worksheets("Feuil1").Range("C3")
    Do Until license.Value = ""
        license_no = Mid(license.Value, 1, InStr(1, license.Value, " "))
        With Worksheets("Feuil2").QueryTables.Add(Connection:= _
            "URL;http://www.azchiroboard.us/ProDetail.asp?LicenseNo=" & license_no, Destination:= _
            dest)
            .Name = "ProDetail.asp?LicenseNo=" & license_no
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .WebSelectionType = xlSpecifiedTables
            .WebFormatting = xlWebFormattingNone
            .WebTables = "1"
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .WebDisableRedirections = False
            .Refresh BackgroundQuery:=False
        End With
        Set dest = Range("A65535").End(xlUp)
        Set dest = dest.Offset(1, 0)
        Set license = license.Offset(1, 0)
    Loop
End Sub

对于这个记录,我花了1分钟的时间才弄清楚如何从主表中检索数据。1分钟,找出该链接只调用带有许可证号的PHP页面。1分钟录制宏,然后5分钟调整宏并修复我所犯的错误。

您可以访问代码/数据库还是仅访问您链接的网页?欢迎使用stackoverflow。为了得到有用的答案,你需要让你的问题更加具体:你需要借助php、python或其他脚本语言来浏览网站。如果你知道如何使用这些工具,请澄清。生成CSV或Excel文件很简单-您的问题几乎与Excel无关。谢谢!我想让每个脊医的数据占据一行,但在本例中,我为此编写了第二个宏。我花了超过8分钟的时间,但我想这是真的,当你知道如何。