当前位置:首页 » 新媒体运营 » 正文

php抓取页面指定内容,查找百度首页的网页元素,php截取页面内容和代码

1515 人参与  2023年04月27日 15:17  分类 : 新媒体运营  评论

人生,既为过客,何须执着,有些事情,注定无法左右,总要学会放下,懂得随缘。你所追求的,也许最后是一场空,不是你不够努力,是一开始,结局已经注定。。

《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。

教程共两册,八十四讲。今日的内容是专题八“VBA与HTML文档”:查找百度首页的网页元素

php抓取页面指定内容,查找百度首页的网页元素,php截取页面内容和代码-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


第六节 HTML DOM对象常用的方法

大家好,我们开始HTML DOM常见对象的方法的讲解,所谓的方法就是对象自身的动作。HTML DOM 方法就是我们可以在节点(HTML 元素)上执行的动作,比如添加或修改元素。

1 常用的 HTML DOM 方法

一些常用的 HTML DOM 方法:

getElementById(id) 获取带有指定 id 的节点(元素)

getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。

getElementsByClassName() 返回包含带有指定类名的所有元素的节点列表。

appendChild(node) 插入新的子节点(元素)

removeChild(node) 删除子节点(元素)

insertBefore() 在指定的子节点前面插入新的子节点。

getAttribute() 返回指定的属性值。

HTML DOM 方法还有很多,我们经常利用的就是上述前三个我用红色标记的方法。

2 访问 HTML 元素(节点)

所谓访问HTML 元素(节点)就是上述方法的利用,我们举例说明:

1) getElementById() 方法返回带有指定 ID 的元素:

语法:document.getElementById("id");

如获取 id="intro" 的元素:document.getElementById("intro");

2) getElementsByTagName() 返回带有指定标签名的所有元素。

语法:document.getElementsByTagName("tagname");

如获得所有 <p> 元素的列表:document.getElementsByTagName("p");

3)getElementsByClassName() 查找带有相同类名的所有 HTML 元素。

如获得所有包含 class="intro" 的所有元素的一个列表:document.getElementsByClassName("intro");

注意:getElementsByClassName() 在 Internet Explorer 5,6,7,8 中无效。

3 查找所需的网页元素的综合利用

有了上面的理论讲解,我们看看在实际的应用中如何查找所需要的网页元素:

1)当我们可以很清晰的观测到,节点的某些属性时,就可以直接定位它。元素节点的主要的定位属性有:id、name和索引号。元素起始标签的语法:<标签 id="xx" name="xx" value=”xx”...>,而索引号,是按源代码书写的顺序,给每类的元素的成员进行编号(类似每类元素,形成一个数组,从0开始编号)。通过元素类别和编号,我们可以很容易的找到它。我们利用的主要工具:

getElementById(“元素的id属性”)或all(“元素的id属性”):返回拥有指定id的元素集合

getElementsByName(“元素的name属性”)或all(“元素的name属性”):返回拥有指定名称的元素的集合

getElementsByTagName(“标签名称”)或all.tags(“标签名称”):返回该类标签的元素集合。

all(索引号):返回指定索引号的元素节点。

2)我们还可以从body元素/节点开始,一级级去寻找,也可以先定位到它的毗邻节点/元素,再通过判断,去查找它的精确位置。从节点方面而言,树形的模型的节点有个特征,除了根节点,每个节点均只有一个父节点(parentNode),有一个或者多个子节点(childNodes,类似一个对象集合或对象数组,从0开始编号)。因此,通过节点的亲属关系,进行判断查找,我们就可以一步步的在父子节点中切换,获取所需的元素。节点有一些属性,可以利于我们的查找判断,如下:

nodeName(节点名称):元素节点的名称为其标签名,属性节点的名称为其属性名称;

nodeValue(节点值):文本节点的值为其包含的文本,属性节点的值为其包含的属性值;

nodeType(节点类型):元素节点为1、属性节点为2、文本节点为3、注释节点为8、文档节点为9。另外,从元素方面而言,要定位元素的父元素可以通过parentElement属性,定位元素的子元素集合可以通过children属性,判断其标签的名称(tagname),他的值(value),内含文本(innertext)等方式来进行查找。最后,定位节点/元素的下一个同级兄弟可以通过nextSibling属性,定位上一个同级兄弟可以用previousSibling属性。

4 VBA中查找百度首页元素的一个实例

我们去捕捉百度首页,那个提交搜索的表单。这个表单的名称是”f”,然后查询它的innerHtml和OuterHtml。

Sub MYNZA() '捕捉百度首页,提交搜索的表单

【代码见教程】

End Sub

代码截图:

php抓取页面指定内容,查找百度首页的网页元素,php截取页面内容和代码-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


输出结果:

innerHtml:

<input name="ie" type="hidden" value="utf-8"><input name="f" type="hidden" value="8"><input name="rsv_bp" type="hidden" value="1"><input name="rsv_idx" type="hidden" value="1"><input name="ch" type="hidden" value=""><input name="tn" type="hidden" value="baidu"><input name="bar" type="hidden" value=""><span class="bg s_ipt_wr iptfocus quickdelete-wrap"><span class="soutu-btn"></span><input name="wd" class="s_ipt" id="kw" maxlength="255" value="" autocomplete="off"><a title="清空" class="quickdelete" id="quickdelete" style="top: 0px; right: 0px; display: none;" href="javascript:;"></a><span class="soutu-hover-tip" style="display: none;">按图片搜索</span></span><span class="bg s_btn_wr"><input class="bg s_btn" id="su" type="submit" value="百度一下"></span><span class="tools"><span id="mHolder"><div id="mCon"><span>输入法</span></div><ul id="mMenu"><li><a name="ime_hw" href="javascript:;">手写</a></li><li><a name="ime_py" href="javascript:;">拼音</a></li><li class="ln"></li><li><a name="ime_cl" href="javascript:

;">关闭</a></li></ul></span></span><input name="rn" type="hidden" value=""><input name="fenlei" type="hidden" value="256"><input name="oq" type="hidden" value=""><input name="rsv_pq" type="hidden" value="8da8d8ec001a725c"><input name="rsv_t" type="hidden" value="b2b39kZjoN4DHoLoPMw+sMpFZqL/TpIfDe8w9ONePLlGObWa6DFTgMgCmyY"><input name="rqlang" type="hidden" value="cn"><input name="rsv_dl" type="hidden" value="ib"><input name="rsv_enter" type="hidden" value="1">

OuterHtml:

<form name="f" class="fm" id="form" action="/s"><input name="ie" type="hidden" value="utf-8"><input name="f" type="hidden" value="8"><input name="rsv_bp" type="hidden" value="1"><input name="rsv_idx" type="hidden" value="1"><input name="ch" type="hidden" value=""><input name="tn" type="hidden" value="baidu"><input name="bar" type="hidden" value=""><span class="bg s_ipt_wr iptfocus quickdelete-wrap"><span class="soutu-btn"></span><input name="wd" class="s_ipt" id="kw" maxlength="255" value="" autocomplete="off"><a title="清空" class="quickdelete" id="quickdelete" style="top: 0px; right: 0px; display: none;" href="javascript:;"></a><span class="soutu-hover-tip" style="display: none;">按图片搜索</span></span><span class="bg s_btn_wr"><input class="bg s_btn" id="su" type="submit" value="百度一下"></span><span class="tools"><span id="mHolder"><div id="mCon"><span>输入法</span></div><ul id="mMenu"><li><a name="ime_hw" href="javascript:;">手写</a></li><li><a name="ime_py" href="javascript:;">拼音</a></li><li class=

"ln"></li><li><a name="ime_cl" href="javascript:;">关闭</a></li></ul></span></span><input name="rn" type="hidden" value=""><input name="fenlei" type="hidden" value="256"><input name="oq" type="hidden" value=""><input name="rsv_pq" type="hidden" value="8da8d8ec001a725c"><input name="rsv_t" type="hidden" value="b2b39kZjoN4DHoLoPMw+sMpFZqL/TpIfDe8w9ONePLlGObWa6DFTgMgCmyY"><input name="rqlang" type="hidden" value="cn"><input name="rsv_dl" type="hidden" value="ib"><input name="rsv_enter" type="hidden" value="1"></form>

从以上的返回结果,大家也可以看出document 对象的innerHtml和OuterHtml属性的不同。

本节知识点回向:

HTML DOM对象常用的方法有哪些?如何利用

本节参考文件:008工作表.xlsm

php抓取页面指定内容,查找百度首页的网页元素,php截取页面内容和代码-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:

php抓取页面指定内容,查找百度首页的网页元素,php截取页面内容和代码-百度竞价优化_微商推广_今日头条自媒体_新媒体运营_剑谦网络


做人是一件很麻烦的事,所有说法和实情之间都存在这巨大的空隙,好像一生都在和这个东西挣扎,分辨力越强这空隙越深不见底,最后似乎只好把空虚视为答案和真相。。

本文链接:https://www.woshiqian.com/post/210644.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。