【发布时间】:2021-07-03 11:30:33
【问题描述】:
在 Excel VBA 中加载网站并将其放入工作表中,我一直在使用以下内容:
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE .navigate "https://www.wsj.com/market-data/bonds/treasuries"
然后我可以将其复制并粘贴到我的 Excel 工作表中。 但是这个网站不再支持 IE11,而且 Excel VBA 坚持使用 IE11,即使它即将被弃用。
还有其他方法吗?我也看过:
-
Selenium:但它对于 VBA 来说似乎已经过时了(自 2016 年以来未更新),而且我无法让它在 VBA 中与 Edge 或 Firefox 一起使用。
-
AutoIt:我让它将网站的 HTML 代码写入 TXT 文件 (oHTTP = ObjCreate("winhttp.winhttprequest.5.1") ; $oHTTP.Open("GET", $URL1, False) ; $oHTTP. Send(); $oReceived = $oHTTP.ResponseText; FileWrite($file, $oReceived)) 但是 txt 文件的内容很不方便,因为里面有无穷无尽的 HTML 内容。需要大量的 VBA 代码来整理这些混乱,这可能意味着它在未来将不可靠。另外考虑到我的工作簿的大小非常慢,将网站数据逐个元素复制到工作表中需要几分钟。
肯定有一种简单的方法可以将网站或网站内的表格加载到 Excel 工作表中吗?这一定是一个很好的路径,但经过多次谷歌搜索后,我找不到一个真正有效的简单解决方案。
我有 5 到 10 个网页正在加载到此工作簿中,这似乎是一项全职工作,以保持整个工作正常!非常感谢任何想法/帮助!!!
【问题讨论】:
-
SeleniumBasic 是旧的,没错。但它适用于最新的 WebDrivers。在 YasserKhalil 的回答中查看以下链接,如何安装 SeleniumBasic 和 WebDriver:stackoverflow.com/questions/57216623/…
-
您在问题中给出的网站中查找哪些数据?我尝试使用 XMLHTTP,虽然 HTML 代码可能看起来无穷无尽,但如果您正在寻找国库券和债券或国库券数据,它作为 JSON 字符串存在于 HTML 文档中,您可以从中提取并解析它。
-
(1) 我确实下载了最新的驱动程序,但 Selenium 仍然无法工作,即使使用 Chrome 也是如此。但 TBH 我正试图让 Chrome 完全脱离我的 PC 并使用 Brave / Firefox / Edge。我想我最好从头开始,但是如果在某处有关于如何使用最新的 Brave/Firefox/Edge 的很好的解释? Selenium 还能工作几年吗?
-
@Zwenn 它适用于一些最新的网络驱动程序。我认为 FF、Opera 和 PhatomJS 现在可能是禁忌。
-
@QHaar 我自己用 Chrome 和 PhantomJS 尝试过。使用 PJS 实际上只是为了尝试整个网站的屏幕截图。一开始我用FF和Edge试了一下,没有成功,但是我还没有找到YasserKhalil的安装说明。它与 Chrome 配合得很好,所以我没有进一步探索其他浏览器。
标签: excel vba selenium internet-explorer-11 autoit