![如何从网站抓取特定数据](https://linux22.com/image/1329372/%E5%A6%82%E4%BD%95%E4%BB%8E%E7%BD%91%E7%AB%99%E6%8A%93%E5%8F%96%E7%89%B9%E5%AE%9A%E6%95%B0%E6%8D%AE.png)
我正在尝试从网站上抓取数据以供研究。
这些 URL 以 example.com/x 格式整齐地组织起来,其中 x 为升序数字,所有页面的结构都相同。我只需要抓取某些标题和一些始终位于相同位置的数字。然后我需要将这些数据转换为结构化形式,以便在 Excel 中进行分析。
我以前曾使用 wget 来下载页面,但我不知道如何抓取特定的文本行。
Excel 有一个从网络抓取数据的功能(数据->来自网络),但据我所知,它只允许我下载表格。不幸的是,我需要的数据不在表格中。
答案1
您可以使用宏来自动执行此任务。它是一种自动执行重复任务的工具,可用于从站点提取数据并将其保存为 CSV 文件。
就像x
遵循example.com/x
模式(即升序)一样,您可以轻松地对其进行编程(即使没有编程经验)来访问每个页面并从中提取数据。
阅读更多iMacros 教程。
或者你也可以尝试维基百科(需要一些编程经验)。
答案2
您可以将此代码粘贴到模块中:
Option Explicit
Sub get_data()
Dim result As String
Dim myURL As String
Dim winHttpReq As Object
Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
myURL = "example.com/x format"
winHttpReq.Open "GET", myURL, False
winHttpReq.Send
result = winHttpReq.responseText
Application.ScreenUpdating = True
Range("Sheet1!A1").value = result
End sub
您可以简单地解析单元格 A1 中的长字符串来提取所需的数据。