VBA网页抓取|如何使用Excel VBA报废网站?

Excel VBA Web抓取

VBA网页抓取 是一种访问网页并将数据从该网站下载到我们的计算机文件中的技术。通过访问Internet Explorer等外部应用程序可以进行Web抓取。我们可以通过两种方式来做到这一点,即“早期绑定”和“后期绑定”。

使用VBA进行Web抓取意味着当我们使用VBA从Web上的其他来源获取数据时,这可能需要登录数据来源,但是首先,为了实现此目的,我们需要启用来自以下工具中的工具部分的引用: Microsoft HTML库的VBA编辑器,以便从VBA访问Web。

我们中没有多少人知道从excel中我们可以访问网页并从这些网页中获取数据。是的,您没听错。我们可以抓取网页,访问浏览应用程序等等。在本文中,我们将详细向您展示如何编写用于网络抓取的excel VBA代码。

通常,我们打开网页,复制数据,并将其粘贴到我们的文件中,例如excel,word或其他文件。但是在本文中,我们将向您展示如何从excel访问网站以及做许多其他事情。

如何使用VBA抓取网站数据?

您可以在此处下载此VBA Web刮除Excel模板– VBA Web刮除Excel模板

当我们想从excel访问任何其他应用程序时,我们可以通过“早期绑定”和“后期绑定”来实现。在初学者阶段,使用“早期绑定”技术始终是安全的。

要访问该网站,我们需要浏览应用程序,例如,“IE浏览器”。由于它是一个外部对象,因此我们需要先设置参考。

请按照以下步骤进行废料回收。

步骤1: 定义VBA变量并将数据类型分配为“IE浏览器”.

代码:

 Sub Web_Scraping()昏暗的Internet_Explorer作为Internet结束Sub 

正如您在上方看到的那样,当我们尝试为Internet Explorer设置引用时,我们看不到“ Internet Explorer”,这是因为“ Internet Explorer”是一个外部对象,因此我们需要设置引用。

第2步: 要设置参考,请转到“工具“ & 选择 ”参考”.

在下面的窗口中向下滚动并选择“Microsoft Internet控件”.

第三步: 选中“ Microsoft Internet Controls”框,然后单击“确定”。现在,我们应该在IntelliSense列表中看到该对象名称。

代码:

 Sub Web_Scraping()Dim Internet_Explorer作为Inter End Sub 

第4步: 选择“ InternetExplorer”。

代码:

 子Web_Scraping()暗化Internet_Explorer作为InternetExplorer结束子 

步骤5: 接下来,我们需要设置引用以启用Internet Explorer。由于这是一个对象变量,因此我们需要使用“”关键字来设置引用。

代码:

 子Web_Scraping()将Internet_Explorer设置为InternetExplorer设置Internet_Explorer = New InternetExplorer End Sub 

步骤6: 现在使用变量“IE浏览器”我们可以使用Internet Explorer的属性和方法。

输入变量名称并加一个点以查看IntelliSense列表。

代码:

子Web_Scraping()将Internet_Explorer设置为InternetExplorer设置Internet_Explorer =新的InternetExplorer Internet_Explorer。结束子

步骤7: 现在,为了查看Internet Explorer应用程序,我们需要选择“可见的”属性,并将状态设置为“真的”.

代码:

 子Web_Scraping()将Internet_Explorer设置为InternetExplorer设置Internet_Explorer =新的InternetExplorer Internet_Explorer.Visible =真末子 

现在运行代码,您应该看到一个 IE浏览器 在您的计算机上打开。

步骤8: 由于未提及任何网址,因此我们只能看到一个空白页。要将网址提供给Internet Explorer,我们需要“导航“ 方法。

代码:

 子Web_Scraping()将Internet_Explorer设置为InternetExplorer设置Internet_Explorer =新的InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate(结束Sub 

步骤9: 如您所见,上面的“导航”方法询问要在Internet Explorer中浏览哪个URL。现在我需要打开网站“Wallstreetnmojo”,然后我可以提供如下网址。 “ //www.wallstreetmojo.com/”

代码:

 子Web_Scraping()将Internet_Explorer设置为InternetExplorer设置Internet_Explorer =新InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate(“ //www.wallstreetmojo.com”)结束子 

现在运行代码,我们应该在Internet Explorer中看到提到的网址页面。

这是一个问题,一旦打开网页,我们的代码就需要等待,直到页面网页完全打开。

步骤10: 我们需要在VBA中使用“ Do While”循环来实际上等待我们的代码继续执行,直到所述页面完全加载为止。

因此,请在“ Do While”循环下添加代码,以强制宏等待,直到提到的网页进入“就绪状态已完成“ 模式。

代码:

 子Web_Scraping()将Internet_Explorer设置为InternetExplorer设置Internet_Explorer =新的InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate(“ //www.wallstreetmojo.com”)何时执行Internet_Explorer.ReadyState READYSTATE_COMPLETE:循环结束子 

步骤11: 现在,让我们尝试在一行中获取有关该网站的信息。要获取有关上述网址信息的信息,我们需要使用“地点名称“ 财产。

代码:

 子Web_Scraping()将Internet_Explorer设置为InternetExplorer设置Internet_Explorer =新的InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate(“ //www.wallstreetmojo.com”)在Internet_Explorer.ReadyState READYSTATE_COMPLETE时执行的操作:循环MsgBox InternetName 

运行代码,然后在消息框中,我们将获得有关该网站的信息。

步骤12: 现在,在底部,我们也可以打印网站地址。

代码:

 子Web_Scraping()将Internet_Explorer设置为InternetExplorer设置Internet_Explorer =新InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate(“ //www.wallstreetmojo.com”)在Internet_Explorer.ReadyState READYSTATE_COMPLETE时执行:循环MsgBox v_Line .LocationURL结束子 

现在,这将说明网站说明,并显示网站地址。

这里要记住的事情

  • 通过访问Internet Explorer等外部应用程序可以进行Web抓取。
  • 我们可以通过两种方式来做到这一点,即“早期绑定”和“后期绑定”。使用早期绑定,我们可以看到IntelliSense列表,但是使用后期绑定,我们根本看不到IntelliSense列表。