vba 网页数据抓取(“VBA信息获取与处理”教程中第八个专题(组图) )

优采云 发布时间: 2021-09-30 06:26

  vba 网页数据抓取(“VBA信息获取与处理”教程中第八个专题(组图)

)

  《VBA信息获取与处理》教程第八题“VBA与HTML文档”的第七节“HTML DOM对象事件与关联”,太枯燥了。希望想要掌握这方面知识的朋友可以参考我的教程。. 今天我们开始学习第九题《使用IE捕获网络数据》。在我们的网络爬虫部分讲解了XMLHTTP方法之后,我们利用两个主题的进度来讲解一些与VBA不太相关的网络知识。这两个话题对于我们重新认识网络爬虫数据非常重要。虽然我的解释并不详尽,但对于我经常提倡的VBA定位来说已经足够了。而且,学习是一个不断积累和进步的过程。你需要掌握的是一些基本的理论,然后把它们应用到自己身上。实际上,这是关键。从这个话题,我们继续从网上学习。本主题是使用IE捕获网络数据。其实就是利用控件来完成我们的工作。第一部分使用IE方法提取网页数据的基础。为了获取网页的数据,我们可以创建一个IE控件或者webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作来获取浏览器页面的数据。这种方法可以模拟大多数浏览器操作。浏览器能看到的数据可以用代码获取,但是有个致命的缺点:除了烦人的弹窗,兼容性确实是个很麻烦的问题。实际上,这是关键。从这个话题,我们继续从网上学习。本主题是使用IE捕获网络数据。其实就是利用控件来完成我们的工作。第一部分使用IE方法提取网页数据的基础。为了获取网页的数据,我们可以创建一个IE控件或者webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作来获取浏览器页面的数据。这种方法可以模拟大多数浏览器操作。浏览器能看到的数据可以用代码获取,但是有个致命的缺点:除了烦人的弹窗,兼容性确实是个很麻烦的问题。实际上,这是关键。从这个话题,我们继续从网上学习。本主题是使用IE捕获网络数据。其实就是利用控件来完成我们的工作。第一部分使用IE方法提取网页数据的基础。为了获取网页的数据,我们可以创建一个IE控件或者webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作来获取浏览器页面的数据。这种方法可以模拟大多数浏览器操作。浏览器能看到的数据可以用代码获取,但是有个致命的缺点:除了烦人的弹窗,兼容性确实是个很麻烦的问题。本主题是使用IE捕获网络数据。其实就是利用控件来完成我们的工作。第一部分使用IE方法提取网页数据的基础。为了获取网页的数据,我们可以创建一个IE控件或者webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作来获取浏览器页面的数据。这种方法可以模拟大多数浏览器操作。浏览器能看到的数据可以用代码获取,但是有个致命的缺点:除了烦人的弹窗,兼容性确实是个很麻烦的问题。本主题是使用IE捕获网络数据。其实就是利用控件来完成我们的工作。第一部分使用IE方法提取网页数据的基础。为了获取网页的数据,我们可以创建一个IE控件或者webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作来获取浏览器页面的数据。这种方法可以模拟大多数浏览器操作。浏览器能看到的数据可以用代码获取,但是有个致命的缺点:除了烦人的弹窗,兼容性确实是个很麻烦的问题。我们可以创建一个IE控件或者一个webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作来获取浏览器页面的数据。这种方法可以模拟大多数浏览器操作。浏览器能看到的数据可以用代码获取,但是有个致命的缺点:除了烦人的弹窗,兼容性确实是个很麻烦的问题。我们可以创建一个IE控件或者一个webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作来获取浏览器页面的数据。这种方法可以模拟大多数浏览器操作。浏览器能看到的数据可以用代码获取,但是有个致命的缺点:除了烦人的弹窗,兼容性确实是个很麻烦的问题。

  在我自己的实践中,我觉得这个方法不是很稳定(只是一种感觉)。1 IE模型的创建我们在实际工作中遇到了网站和web相关的问题,比如:如何下载web数据?网页之间的通信是如何实现的,是否可以控制等。如果你是用VB/VBA/script或其他支持AUTOMATION的语言编程,掌握对象模型有一个方法值得了解:对待网页作为要控制的对象,该方法需要了解IE(InternetExplorer.Application)或IE控件(Microsoft Internet Controls)的自动化对象,以及标准的文档对象模型(Document)。前两个题目我已经做了很多相关的知识,这里就不详细解释了。我给出以下代码: Set ie = CreateObject("InternetExplorer.

  此网页独立于 VBA 应用程序(WORD 或 EXCEL)。其实必须自己关闭,或者使用ie.Quit命令退出——注意简单关闭VBA或者SET ie=nothing都不会退出这个页面。我们经常使用的是将第3行的字符串替换为网站的名称,或者替换为你主机中的文档名,或者图片名,都可以。和你在IE地址栏中输入名称浏览这些文档的效果是一样的。如果只是创建一个空模型,则没有任何使用价值。我们需要一个真正的网页。这时候,我们需要在VBA应用程序之外打开一个完整的网页。直到网页完全加载完毕,我们的操作才能继续下。2 加载 IE 网页 让我们修改上面打开空网页的代码: Sub mynz() Set ie = CreateObject("InternetExplorer.

  readyState有5种状态: 状态含义描述 0 未初始化对象已创建,但尚未初始化(未调用open方法) 1 已初始化对象已创建,未调用send方法 2 send()方法已经被调用,但是当前状态和http头未知 3 数据传输中已经接收到部分数据,因为响应和http头不完整,那么部分数据时会报错数据是通过 responseBody 和 responseText 获取的。4 接收到数据后,可以通过responseBody 和responseText 获取完整的响应数据。从上面的分析可以看出,网页的数据只有在.ReadyState = 4时才有效。 3 获取IE页面数据 网页加载时,剩下的工作就是从网页中抓取数据。数据抓取主要是利用控件对象的属性和方法。1)使用Set doc = ie.Document获取网页的文档对象。对象模型由文档对象(Document)扩展而来,代表网页的内容,与之前的IE应用不是同一个系统。Documnet(document) 是文档对象模型,相当于OFFICE对象中的APPLICATION。获取到Document之后,无论是修改网页、读写网页,还是触发事件,一切都好说,每个URL对应一个Documnet(这是如果导航成功导航完成的URL,

  可以使用如下语句:set xbody=doc.Body'获取body对象set xDoc=doc。documentElement'获取根节点body 前面说过,相当于被标记的对象,根节点相当于网页中被标记的元素对象。在 MHTML 类型库的定义中,它们都是 HTMLHtmlElement 类型的对象。下面我称这种类型的对象为“节点”,但需要注意的是,文档对象不是节点对象,它是HTMLDocument 类型的。根节点和正文节点的区别在于根节点包括整个网页。在HTML的文档对象模型中,这种类型的对象有几个属性来获取内容: Object.innerHtml'HTML text object inside the object.OuterHtml' in the object HTML text, 包括对象本身的 HTML 标记。对象内部的innerText'TEXT,不包括HTML标签对象。OuterText' 同上,包括对象本身的文本。所以,如果我们想抓取某个网站的所有HTML内容,代码可以这样写:set doc=ie.Document set xDoc=doc。documentElement'获取根节点 strX=xDoc.OuterHtml'获取所有 HTML 内容3) 每个标签节点对象下都有一个名为 ChildNodes 的集合,里面收录“直接在这个节点下的标记”,就像一个文件目录,一个根目录下的子目录。我们可以看到: HTML 标记是文档的根节点,它是文档 Childnodes 集合的成员(文档不是节点,它是另一种类型的对象,上层文档,

  需要注意的是:在文档对象模型中,集合不同于OFFICE集合。集合从0开始计数,count属性是Length而不是Count。4) 除了ChildNodes集合,大家在web文档对象中常见的还有一个非常流行的集合:All集合,也就是“最迷惑”的集合。各级文档和节点都有这个Set,顾名思义,它没有分层,但是使用起来也很方便:Set doc=ie.Document Set xCols=doc.All'获取该集合中所有节点的集合document Set xbCols=doc.body.All '获取body节点下的所有节点集。尽管任何标记的节点都有一个 ALL 集,但我们仍然无缘无故地喜欢使用 DOCUMENT 的 ALL。该文件是最大的,一锅ALL最适合找。ALL 搜索是有条件的:如果这个标签没有 ID,你就找不到它的名字。但是ALL集合有一个很方便的特性:可以在ALL集合下挂ID:strX=doc.All.mytag.innerhtml5) 获取document对象的getElementsByName集合,可以使用如下方法: 设置 mydivs= 文档。getElementsByName("div")'获取所有的 DIV 标签。注意还是集合6)文档对象的FORMS集合,因为大部分网页数据提交都是通过FORM标签提交的: Set myForms=doc.Forms' Get all FORM tags Set frmX=myForms。 item(0)'第一个FORM FORM标签节点所代表的对象是很多朋友关心的内容——在网页对象中,它可以向服务器发送数据,使服务器刷新网页(实际上是服务器按照一定的格式约定发回数据),我们可以把网页的FORM看成一个远程函数调用接口,指向的URL地址FORM标签中的ACTION是函数入口,FORM标签中每个INPUT标记的节点都是函数的参数,当FORM. 在 Submit 方法中,该函数被远程调用。在服务器端,比如ASP,PHP就是老老实实的找FORM参数,不管是GET还是POST:frmX.submit'相当于用户在页面上按FORM发送 我已经列出了一般的获取方法按钮上的网页数据。没有特殊的使用要求。可以根据自己的习惯使用。本专题后面的内容就是利用这些知识点灵活解决实际问题。本节知识点:如何提交表单?怎么下载图片的地址?如何获取表的数据?

  

  积木编程的内涵:在我的系列丛书中,我一直强调“积木”的编程思想。这也是学习使用VBA的主要方法,尤其是职场专业人士。主要内涵: 1. 不要自己输入所有代码。您要做的就是将构建块放在正确的位置,然后修改代码。一定要复制,从你的构建块库中复制,然后修改代码,并利用你的时间进行有效的思考。2 建立自己的“积木库”。平时在学习的过程中,把自己觉得有用的代码拼凑起来,多积累一些,用到的时候随时可以拿到。您的构建块库中的数据越多,您的编程想法就越广泛。

  

  VBA应用定义 VBA是使用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA应用的定义。在取代OFFICE的新办公软件到来之前,谁能做到数据处理的极致才是王道。其中,技能的巅峰非VBA莫属!记得20年前第一次学VBA的时候,当时资料很少。只能自己看源码自己弄明白了。这真的很困难。二十年过去了。为了不让学VBA的朋友重复我之前的经验,根据我多年VBA的实际使用,特推出6个VBA教程: 第一套:VBA代码解决方案是VBA中各种知识点的讲解教程共有147个讲义,涵盖了大部分VBA知识点,初学者必备;第二套:VBA数据库解决方案数据库是数据处理的专业工具。本教程详细介绍了使用ADO连接ACCDB和EXCEL的方法和示例。操作,适合中级人员学习。第三套:VBA数组和字典解决方案。数组和字典是 VBA 的精髓。字典是提高VBA代码水平的有效手段。值得深入研究。是初学者和中级人员改进代码的一种手段。第四套:VBA代码解题视频是专门针对初学者的视频讲解。您可以快速入门并更快地掌握此技能。这套教程是第一套教程视频讲解,听元音比较好听。第五套:VBA中类的解释和利用这是一个高级教程,用于解释类的空性和肉体的程度。虽然类的使用较少,但仔细研究可以促进你的VBA理论的提高。这套教程的领悟主要是读者的领悟,对佛教哲学的领悟。第六套教程:《VBA信息获取与处理》,这是一本进阶教程,覆盖面更广,实用性更强,面向中高级人员。教程共有20个主题,包括:跨应用信息获取、随机信息的使用、邮件发送、VBA互联网数据抓取、VBA延时操作、剪贴板应用、Split函数扩展、工作表信息等应用交互、FSO对象的使用、工作表和文件夹信息的获取、图形信息的获取、工作表信息功能的定制等等,你可以根据上面的信息,按照1→3→2→6→5或4→3→2→6→5的顺序慢慢学习。本教程在提供大量构建块的同时提供了解释。如有需要,您可以微信:NZ9668 等等,你可以根据上面的信息按照1→3→2→6→5或4→3→2→6→5的顺序慢慢学习。本教程在提供大量构建块的同时提供了解释。如有需要,您可以微信:NZ9668 等等,你可以根据上面的信息按照1→3→2→6→5或4→3→2→6→5的顺序慢慢学习。本教程在提供大量构建块的同时提供了解释。如有需要,您可以微信:NZ9668

  

  学习VBA是一个过程,也需要经历一种像太白诗云一样无聊的感觉:众鸟高飞,孤云孤单。相视不倦,唯景亭山。学习的过程也是修心的过程,修心的过程。在代码的世界里,心静,心情好,身体自然好。心平气正,心无邪见,妄念不多。造福他人就是造福自己。这些教程也是为了帮助大家起航,帮助我。我的上述教程是我的许多经验的传输。“水不争气,万物皆可。” 学习也是如此,知道自己需要什么,不要蜷缩在你认为是天堂的一小片世界里,等到晚年再自欺欺人。努力提升自己,用一颗充满活力的心,把握当下,这才是进取。越有意义的事情,越困难。意志力决定一切,智慧决定成败。不管遇到什么,都是风景。无视纠纷,无视得失。茶,不管是满是小,都不用担心;浓或淡,都有它自己的味道。感受真实的时光,静下心来,多学习,积累祝福。不是每天都在胡闹,也不会每天都忍受。在存量更加严峻的后疫情世界,我们会为自己的生存储备知识,尤其是新知识的储备。学时小而无声,用时则大而动荡。每一次的收获都是成长的记录,所以没有依据。正是这种坚持,造就了朝霞的光辉。最后,给致力于VBA学习的朋友一个酷儿,让大家感受一下学习过程的枯燥和坚持:云雾缭绕,密语无声,唯有微风,震撼武者。梦。仰望星空,移开北斗星,奈将与昔日大雁同行。秦漠人,暗淡明暗,容忍顾长霆。多少VBA人,在漆黑的夜里,为梦低声,盼黎明。没有证据!回到学习使用VBA的历史,不禁感慨,把这些话跟大家分享一下,把我多年实际工作经验的成果,我喜欢这些有用的东西,分享给真正需要使用VBA的旅友们。分享成果,快乐正能量

  添加微信NZ9668获取详细信息

  VBA解决方案系列作者

  今日头条百家平台资深VBA创建者

  _______________________________

  我正在看,有指导意义的请给作者的朋友留言,直接交流

  更多相关阅读

  

  

  

  

  

  

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线