Excel 如何利用VBA刮取整页源代码-单元格限制问题
我想使用VBA(没有任何其他工具)刮取整页源代码,并将其粘贴到excel中。然而,由于单元格的限制,大部分源代码丢失了 我正在使用下面的代码:Excel 如何利用VBA刮取整页源代码-单元格限制问题,excel,vba,web-scraping,Excel,Vba,Web Scraping,我想使用VBA(没有任何其他工具)刮取整页源代码,并将其粘贴到excel中。然而,由于单元格的限制,大部分源代码丢失了 我正在使用下面的代码: Sub SCRAPE() Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") With IE .Visible = False .Navigate "https://www.ng-news.net/best-budge
Sub SCRAPE()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = False
.Navigate "https://www.ng-news.net/best-budget-processor-for-super-budget-gaming-pc/"
Do While .Busy And .readyState <> 4: DoEvents: Loop
Application.Wait Now + TimeValue("0:00:06")
Sheets("Sheet1").Range("A1").Value = .document.body.outerHTML
.Quit
End With
End Sub
Sub-SCRAPE()
模糊的物体
设置IE=CreateObject(“InternetExplorer.Application”)
与IE
.Visible=False
.导航“https://www.ng-news.net/best-budget-processor-for-super-budget-gaming-pc/"
执行While.Busy和.readyState 4:DoEvents:Loop
应用程序。立即等待+时间值(“0:00:06”)
图纸(“Sheet1”)。范围(“A1”)。值=.document.body.outerHTML
退出
以
端接头
我曾考虑使用文本框而不是单元格,但我不知道是否(以及如何)可以设置文本框的值
另一个解决方案可能是预先设置定界,在粘贴后会对源代码进行划分,但它不起作用,因为代码中实际上没有“粘贴”方法
可能可以将源代码保存到txt文件而不是单元格中,但同样-我需要在最后将其放在excel中,因此单元格限制也会出现问题
你们能不能建议一些其他的解决方案,或者编辑上面的代码,这样我就可以得到完整的源代码 你是对的,由于单元格的限制,你不能这样做。为什么需要页面中的完整HTML?您可以访问
.document
对象,您可以使用该对象并从HTML中提取所需内容。如果您真的需要完整的HTML,我建议编写一个解析器来分解HTML,并让它将结果粘贴到范围
而不是单元格
中。我想要完整的源代码的原因是我需要b_hotel_id值(这里:1098427),但我不知道如何处理它。所以我想在粘贴到excel中之后,用更手动的方式提取数据。顺便说一句,你所说的“编写一个分解HTML的解析器,并让它将结果粘贴到一个范围而不是一个单元格”是什么意思?你不需要为此下载HTML。你是他们的一半。研究GetElementByTagName
或GetElementById
。它应该会引导您找到所需的内容我已经尝试过了,但是由于此元素在网站中不可见,因此我找不到适当的标记来引用此对象…您可以使用GetElementsByTagName(“输入”)
。这将返回页面上的所有输入字段(即使它们是隐藏的)。然后,您可以循环遍历它们,直到找到一个以hotel_id为名称的元素,并捕获该元素的值。有其他方法可以做到这一点,但可能值得首先使用文档来使用