干货教程:Excel VBA 爬虫实现自己的网页数据抓取(网抓/网爬)
优采云 发布时间: 2022-09-22 03:09干货教程:Excel VBA 爬虫实现自己的网页数据抓取(网抓/网爬)
我自己做过很多VBA网页抓取项目,但是因为涉及到用户的系统和数据,所以*敏*感*词*并不容易。最近又有网友问起这个教程。只好找了相关的国外VBA网抓教程,翻译一下。希望对美国有好处。
但请注意,网络抓取只能抓取您自己的或合法的数据。
来自:使用 VBA 进行网页抓取
什么是数据抓取?
数据抓取是一种帮助从 HTML 网页提取所需信息到本地计算机上的本地文件的技术。通常,本地文件可以对应于 excel 文件、word 文件或任何 Microsoft Office 应用程序。它有助于引导网页中的关键信息。
在从事完全依赖互联网和 网站 的基于研究的项目时,每天都可以轻松地进行数据抓取。为了进一步说明这个主题,我们以一个日内交易者为例,他运行一个 Excel 宏,使用 VBA 从 Financial网站 提取市场信息到 Excel 工作表中。
在本教程中,您将学习:
如何在使用 Internet Explorer 执行数据抓取之前准备 Excel 宏?
在进入excel中数据抓取过程之前,必须对excel宏文件进行一定的先决条件。
这些先决条件如下:
步骤1)打开基于 Excel 的宏并访问 Excel 的开发人员选项。
步骤2)选择开发人员功能区下的 Visual Basic 选项。
步骤3)插入一个新模块。
步骤4)初始化一个新的子程序
子测试()
结束子
此模块将产生以下结果:–
步骤5)访问“工具”选项卡下的“参考”选项,并参考 Microsoft HTML 对象库和 Microsoft Internet 控件。
以下文件将引用到此模块,因为它有助于打开 Internet Explorer 并促进宏脚本的开发。
Excel 文件现在可以与 Internet Explorer 交互了。下一步将是合并宏脚本以促进 HTML 中的数据抓取。
如何使用 Excel VBA 打开 Internet Explorer?
步骤1)初始化子程序中的变量如下
子测试()
Dim ie As New InternetExplorer
将文档变暗为新的 HTMLDocument
步骤2)要使用 VBA 打开 Internet Explorer,请输入 ie visible=true 并按 F5。
子测试()
Dim ie As New InternetExplorer
将文档变暗为新的 HTMLDocument
即可见=真
模块如下所示:
如何使用 VBA 在 Internet Explorer 中打开 网站?
以下是使用 VBA 在 Internet Explorer 中打开 网站的步骤
步骤1)一旦您能够使用 Excel VBA 访问 Internet Explorer,下一步将包括使用 VBA 访问网站。导航属性有助于实现这一点,其中 URL 必须作为属性中的双引号传递。请按照以下步骤操作。
子测试()
暗淡,即作为新的 InternetExplorer
将文档变暗为新的 HTMLDocument
暗淡作为对象
ie.Visible = True
ie.navigate"http://demo.guru99.com/test/web-table-element.php"
做
做事件
循环直到 ie.readyState = READYSTATE_COMPLETE
Steps 2) – 按 F5 执行宏。以下页面将如图所示打开
excel 宏现在已准备好执行抓取功能。下一步将展示如何使用 VBA 从 Internet Explorer 中提取信息。
如何使用 VBA 从 网站 中抓取信息?
假设日间交易者希望每天从 网站 访问数据。日内交易者每点击一次按钮,市场数据就会自动拉入 Excel。
从上面的网站,需要检查一个元素,观察数据的结构。
步骤1)按control + Shift + I访问以下HTML源代码
公司
组
预收盘价(卢比)
当前价格(卢比)
% 变化
源码如下:-
子测试()
Dim ie As New InternetExplorer
将文档变暗为新的 HTMLDocument
暗淡作为对象
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
做
做事件
循环直到 ie.readyState = READYSTATE_COMPLETE
设置 doc = ie.document
<p>
</p>
可以看出,数据结构为单个 HTML 表格。因此,为了提取html表中的所有数据,需要设计一个宏,以集合的形式采集数据。
然后将集合粘贴到 Excel 中。要达到预期的结果,请执行以下步骤:-
步骤2)在子程序中初始化Html文档
VBA 模块如下所示:–
步骤3)初始化HTML文档中的集合元素
VBA 模块如下所示:–
子测试()
Dim ie As New InternetExplorer
将文档变暗为新的 HTMLDocument
暗淡作为对象
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
做
做事件
循环直到 ie.readyState = READYSTATE_COMPLETE
设置 doc = ie.document
设置 ecoll = doc.getElementsByTagName("table")
步骤4)在嵌套循环的帮助下初始化excel工作表单元格,如图所示
VBA 模块如下所示:–
子测试()
Dim ie As New InternetExplorer
将文档变暗为新的 HTMLDocument
暗淡作为对象
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
做
做事件
循环直到 ie.readyState = READYSTATE_COMPLETE
设置 doc = ie.document
设置 ecoll = doc.getElementsByTagName("table")
Excel 可以使用 Excel 工作表的 range 属性或通过 Excel 工作表的单元格属性进行初始化。为了降低 VBA 脚本的复杂性,将集合数据初始化为工作簿中存在的工作表 1 的 excel 单元格属性。
当宏脚本准备好后,将子程序传递并分配给excel按钮并退出VBA模块。将按钮标记为刷新或任何可以对其进行初始化的合适名称。在本例中,按钮被初始化为刷新。
步骤5)按刷新按钮得到下面提到的输出
步骤 6)比较 excel 中的结果和 Internet Explorer 中的结果
总结:
最新版:谷歌浏览器插件猫抓-网页媒体嗅探工具 音乐/视频地址获取工具
毛藻是一款网络媒体嗅探工具,音乐/视频地址获取工具...
2018 年 6 月 1 日
1.0.15使用下载API调用文件下载,解决下载无法重命名的问题。可能会提示需要新的权限,这是正常的,只要在官方chrome扩展中心安装绝对干净即可。
扩展嗅探工具,依赖chrome API...如果需要更完善,请尝试IDM甚至Wireshark等软件...
非常感谢所有热心的朋友,继续提交抓不到的网址。有些网站可以通过在设置中添加MIME类型application/octet-stream来解决,这样会捕获更多的非媒体文件和流媒体。你知道地址不一定是可下载的(所以我把它从 1.0.7 中删除了)
下载猫抓插件
版本:1.0.15
最后更新时间:2018 年 6 月 1 日
点击进入下载页面