如何从800+;大量下载的HTML文件

如何从800+;大量下载的HTML文件,html,excel,Html,Excel,我从客户网站上下载了大约800页。我想从这些页面中获取三条信息,并将它们全部列在一个Excel文档中。这可能吗 我需要从每个页面获得的数据是(我已经包括了一些关于代码在客户网站上的位置的信息): 车库名称(这是页面元标题) 此处为车库名称 车库电话号码(与div一起定位) 汽车数量 此处的车辆数量 这可能吗?这是值得知道的,我的知识是有限的,当涉及到这样的事情 你可以这样想: Dim FName As String Dim Str, Tmp As String Dim i, e As L

我从客户网站上下载了大约800页。我想从这些页面中获取三条信息,并将它们全部列在一个Excel文档中。这可能吗

我需要从每个页面获得的数据是(我已经包括了一些关于代码在客户网站上的位置的信息):

车库名称(这是页面元标题)


此处为车库名称

车库电话号码(与div一起定位)


汽车数量

此处的车辆数量


这可能吗?这是值得知道的,我的知识是有限的,当涉及到这样的事情

你可以这样想:

Dim FName As String
Dim Str, Tmp As String
Dim i, e As Long

i = 1
Range("A1:D6").Clear
FName = Dir("e:\0\*.htm*")
Do While FName <> ""
    Open "e:\0\" & FName For Input As #1
        Do While Not EOF(1)
            Line Input #1, Str
            e = InStr(1, Str, "<title>", vbTextCompare)
            If (e > 0) Then
                Tmp = Mid(Str, e + 7, InStr(1, Str, "</title>", vbTextCompare) - e - 7)
                ActiveSheet.Cells(i, 1).Value = FName
                ActiveSheet.Cells(i, 2).Value = Tmp
            End If
            e = InStr(1, Str, "phone number"">", vbTextCompare)
            If (e > 0) Then
                Tmp = Mid(Str, e + 14, InStr(1, Str, "</a>", vbTextCompare) - e - 14)
                ActiveSheet.Cells(i, 3).Value = Tmp
            End If
            e = InStr(1, Str, ".TotalRecords()"">", vbTextCompare)
            If (e > 0) Then
                Tmp = Mid(Str, e + 17, InStr(1, Str, "</span>", vbTextCompare) - e - 17)
                ActiveSheet.Cells(i, 4).Value = Tmp
                i = i + 1
            End If
        Loop
    Close #1
    FName = Dir
Loop
Dim FName作为字符串
Dim Str,Tmp作为字符串
暗淡的我,和你一样长
i=1
范围(“A1:D6”)。清除
FName=Dir(“e:\0\*.htm*”)
当FName“”时执行
打开“e:\0\”和FName,输入为#1
不执行时执行EOF(1)
行输入#1,Str
e=InStr(1,Str,“,vbTextCompare)
如果(e>0),则
Tmp=Mid(Str,e+7,InStr(1,Str,“,vbTextCompare)-e-7)
ActiveSheet.Cells(i,1).Value=FName
单元格(i,2).Value=Tmp
如果结束
e=InStr(1,Str,“电话号码”“>”,vbTextCompare)
如果(e>0),则
Tmp=Mid(Str,e+14,InStr(1,Str,“,vbTextCompare)-e-14)
单元格(i,3).Value=Tmp
如果结束
e=InStr(1,Str,“.TotalRecords()”>,vbTextCompare)
如果(e>0),则
Tmp=Mid(Str,e+17,InStr(1,Str,“,vbTextCompare)-e-17)
单元格(i,4).Value=Tmp
i=i+1
如果结束
环
关闭#1
FName=Dir
环

Sub读取dir中的所有文件Htm或Html,提取(基本或格式)数据并放入活动工作表…

此任务更适合于某些其他脚本语言。以下任何一项都可以帮助您:Python(带Scrapy)、PowerShell或许多UNIX世界(Grep、Awk等)。这在Excel中是可能的,但你应该用锤子钉钉子,而不是螺丝刀。@xificurC你能解释一下吗?@xificurC也别忘了ruby:)@SDemeda-每种语言都有它的用途,VBA可以用来操作Excel,但不太适合从html页面中刮取数据。许多脚本语言提供了很好的工具来提取数据,例如Python的Scrapy库以树的形式加载html,您可以简单地告诉它提取,例如,所有
a
s都有一个类
box\u area\u body
的父
div
。这些语言还提供了更多的工具来操作字符串。总的来说,其他语言的代码会更短更简单。谢谢,我将尝试在Python中使用Scrapy。如果这不起作用,我将尝试使用提供的答案@user3514930。