Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
分享成果,隨喜正能量】人生,既為過(guò)客,何須執(zhí)著,有些事情,注定無(wú)法左右,總要學(xué)會(huì)放下,懂得隨緣。你所追求的,也許最后是一場(chǎng)空,不是你不夠努力,是一開(kāi)始,結(jié)局已經(jīng)注定。。
《VBA信息獲取與處理》教程是我推出第六套教程,目前已經(jīng)是第一版修訂了。這套教程定位于最高級(jí),是學(xué)完初級(jí),中級(jí)后的教程。這部教程給大家講解的內(nèi)容有:跨應(yīng)用程序信息獲得、隨機(jī)信息的利用、電子郵件的發(fā)送、VBA互聯(lián)網(wǎng)數(shù)據(jù)抓取、VBA延時(shí)操作,剪貼板應(yīng)用、Split函數(shù)擴(kuò)展、工作表信息與其他應(yīng)用交互,F(xiàn)SO對(duì)象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定制工作表信息函數(shù)等等內(nèi)容。程序文件通過(guò)32位和64位兩種OFFICE系統(tǒng)測(cè)試。是非常抽象的,更具研究的價(jià)值。
教程共兩冊(cè),八十四講。今日的內(nèi)容是專(zhuān)題八“VBA與HTML文檔”:查找百度首頁(yè)的網(wǎng)頁(yè)元素
大家好,我們開(kāi)始HTML DOM常見(jiàn)對(duì)象的方法的講解,所謂的方法就是對(duì)象自身的動(dòng)作。HTML DOM 方法就是我們可以在節(jié)點(diǎn)(HTML 元素)上執(zhí)行的動(dòng)作,比如添加或修改元素。
一些常用的 HTML DOM 方法:
getElementById(id) 獲取帶有指定 id 的節(jié)點(diǎn)(元素)
getElementsByTagName() 返回包含帶有指定標(biāo)簽名稱(chēng)的所有元素的節(jié)點(diǎn)列表(集合/節(jié)點(diǎn)數(shù)組)。
getElementsByClassName() 返回包含帶有指定類(lèi)名的所有元素的節(jié)點(diǎn)列表。
appendChild(node) 插入新的子節(jié)點(diǎn)(元素)
removeChild(node) 刪除子節(jié)點(diǎn)(元素)
insertBefore() 在指定的子節(jié)點(diǎn)前面插入新的子節(jié)點(diǎn)。
getAttribute() 返回指定的屬性值。
HTML DOM 方法還有很多,我們經(jīng)常利用的就是上述前三個(gè)我用紅色標(biāo)記的方法。
所謂訪問(wèn)HTML 元素(節(jié)點(diǎn))就是上述方法的利用,我們舉例說(shuō)明:
1) getElementById() 方法返回帶有指定 ID 的元素:
語(yǔ)法:document.getElementById("id");
如獲取 id="intro" 的元素:document.getElementById("intro");
2) getElementsByTagName() 返回帶有指定標(biāo)簽名的所有元素。
語(yǔ)法:document.getElementsByTagName("tagname");
如獲得所有 <p> 元素的列表:document.getElementsByTagName("p");
3)getElementsByClassName() 查找?guī)в邢嗤?lèi)名的所有 HTML 元素。
如獲得所有包含 class="intro" 的所有元素的一個(gè)列表:document.getElementsByClassName("intro");
注意:getElementsByClassName() 在 Internet Explorer 5,6,7,8 中無(wú)效。
有了上面的理論講解,我們看看在實(shí)際的應(yīng)用中如何查找所需要的網(wǎng)頁(yè)元素:
1)當(dāng)我們可以很清晰的觀測(cè)到,節(jié)點(diǎn)的某些屬性時(shí),就可以直接定位它。元素節(jié)點(diǎn)的主要的定位屬性有:id、name和索引號(hào)。元素起始標(biāo)簽的語(yǔ)法:<標(biāo)簽 id="xx" name="xx" value=”xx”...>,而索引號(hào),是按源代碼書(shū)寫(xiě)的順序,給每類(lèi)的元素的成員進(jìn)行編號(hào)(類(lèi)似每類(lèi)元素,形成一個(gè)數(shù)組,從0開(kāi)始編號(hào))。通過(guò)元素類(lèi)別和編號(hào),我們可以很容易的找到它。我們利用的主要工具:
getElementById(“元素的id屬性”)或all(“元素的id屬性”):返回?fù)碛兄付╥d的元素集合
getElementsByName(“元素的name屬性”)或all(“元素的name屬性”):返回?fù)碛兄付Q(chēng)的元素的集合
getElementsByTagName(“標(biāo)簽名稱(chēng)”)或all.tags(“標(biāo)簽名稱(chēng)”):返回該類(lèi)標(biāo)簽的元素集合。
all(索引號(hào)):返回指定索引號(hào)的元素節(jié)點(diǎn)。
2)我們還可以從body元素/節(jié)點(diǎn)開(kāi)始,一級(jí)級(jí)去尋找,也可以先定位到它的毗鄰節(jié)點(diǎn)/元素,再通過(guò)判斷,去查找它的精確位置。從節(jié)點(diǎn)方面而言,樹(shù)形的模型的節(jié)點(diǎn)有個(gè)特征,除了根節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)均只有一個(gè)父節(jié)點(diǎn)(parentNode),有一個(gè)或者多個(gè)子節(jié)點(diǎn)(childNodes,類(lèi)似一個(gè)對(duì)象集合或?qū)ο髷?shù)組,從0開(kāi)始編號(hào))。因此,通過(guò)節(jié)點(diǎn)的親屬關(guān)系,進(jìn)行判斷查找,我們就可以一步步的在父子節(jié)點(diǎn)中切換,獲取所需的元素。節(jié)點(diǎn)有一些屬性,可以利于我們的查找判斷,如下:
nodeName(節(jié)點(diǎn)名稱(chēng)):元素節(jié)點(diǎn)的名稱(chēng)為其標(biāo)簽名,屬性節(jié)點(diǎn)的名稱(chēng)為其屬性名稱(chēng);
nodeValue(節(jié)點(diǎn)值):文本節(jié)點(diǎn)的值為其包含的文本,屬性節(jié)點(diǎn)的值為其包含的屬性值;
nodeType(節(jié)點(diǎn)類(lèi)型):元素節(jié)點(diǎn)為1、屬性節(jié)點(diǎn)為2、文本節(jié)點(diǎn)為3、注釋節(jié)點(diǎn)為8、文檔節(jié)點(diǎn)為9。另外,從元素方面而言,要定位元素的父元素可以通過(guò)parentElement屬性,定位元素的子元素集合可以通過(guò)children屬性,判斷其標(biāo)簽的名稱(chēng)(tagname),他的值(value),內(nèi)含文本(innertext)等方式來(lái)進(jìn)行查找。最后,定位節(jié)點(diǎn)/元素的下一個(gè)同級(jí)兄弟可以通過(guò)nextSibling屬性,定位上一個(gè)同級(jí)兄弟可以用previousSibling屬性。
我們?nèi)ゲ蹲桨俣仁醉?yè),那個(gè)提交搜索的表單。這個(gè)表單的名稱(chēng)是”f”,然后查詢它的innerHtml和OuterHtml。
Sub MYNZA() '捕捉百度首頁(yè),提交搜索的表單
【代碼見(jiàn)教程】
End Sub
代碼截圖:
輸出結(jié)果:
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:;">手寫(xiě)</a></li><li><a name="ime_py" href="javascript:;">拼音</a></li><li class="ln"></li><li><a name="ime_cl" href="javascript:
;">關(guān)閉</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:;">手寫(xiě)</a></li><li><a name="ime_py" href="javascript:;">拼音</a></li><li class=
"ln"></li><li><a name="ime_cl" href="javascript:;">關(guān)閉</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>
從以上的返回結(jié)果,大家也可以看出document 對(duì)象的innerHtml和OuterHtml屬性的不同。
本節(jié)知識(shí)點(diǎn)回向:
HTML DOM對(duì)象常用的方法有哪些?如何利用
本節(jié)參考文件:008工作表.xlsm
我20多年的VBA實(shí)踐經(jīng)驗(yàn),全部濃縮在下面的各個(gè)教程中,教程學(xué)習(xí)順序:
【分享成果,隨喜正能量】做人是一件很麻煩的事,所有說(shuō)法和實(shí)情之間都存在這巨大的空隙,好像一生都在和這個(gè)東西掙扎,分辨力越強(qiáng)這空隙越深不見(jiàn)底,最后似乎只好把空虛視為答案和真相。。
代碼一般情況下分為兩種,一種是程序功能頁(yè)的源文件或叫源代碼,可以修改網(wǎng)頁(yè)功能及顯示效果,往往由技術(shù)人員自己掌握。另一種則是由系統(tǒng)編譯之后生成的HTML源代碼,這些源代碼一般是給瀏覽器看的,通過(guò)HTML超文本編輯語(yǔ)言設(shè)計(jì)網(wǎng)頁(yè)的色彩、布局、寬高、樣式、動(dòng)態(tài)效果等內(nèi)容。在建設(shè)網(wǎng)站的過(guò)程中也可以用來(lái)調(diào)試頁(yè)面顯示異常及問(wèn)題分析。
一般上網(wǎng)者看到的網(wǎng)頁(yè)都包含有HTML源代碼嗎,這些代碼告訴瀏覽器應(yīng)該以哪種方式展現(xiàn)網(wǎng)頁(yè)內(nèi)容,可以理解為機(jī)器代碼,是開(kāi)發(fā)者與瀏覽器達(dá)成共識(shí)的呈現(xiàn),并非用于普通瀏覽者識(shí)別。那么如果想要查看網(wǎng)頁(yè)源代碼應(yīng)該如何操作呢?
第一種方法:在當(dāng)前網(wǎng)頁(yè)點(diǎn)右鍵“查看網(wǎng)頁(yè)源代碼”:
第二種方法:如果點(diǎn)右鍵沒(méi)有如上菜單,可以直接使用快捷鍵“ALT+V+C”,也可以在彈出的菜單里找到“查看網(wǎng)頁(yè)源文件”選項(xiàng)。一般出現(xiàn)在當(dāng)前網(wǎng)頁(yè)的右上角。
以上二種方法是常用的查看網(wǎng)頁(yè)源代碼的方法,一般是為了便于分析HTML代碼,技術(shù)人員專(zhuān)用。普通瀏覽者看到的則是一堆代碼,除了漢字完全就看不明白是什么。
當(dāng)你獲得某個(gè)sql的sql_id時(shí),怎么去一鍵獲得這個(gè)sql的一些信息呢,例如列的情況、執(zhí)行計(jì)劃等等..腳本有點(diǎn)長(zhǎng),建議大家用電腦來(lái)看..
下面用一個(gè)簡(jiǎn)單測(cè)試來(lái)演示下,附腳本領(lǐng)取方式。
SQL> select a.* from (select SQL_ID,SQL_TEXT, EXECUTIONS, DISK_READS, BUFFER_GETS from v$sql order by DISK_READS desc) a where rownum<5;
太長(zhǎng)了...所以這里截部分圖做演示:
SQL> @/home/oracle/sql/spoolsql.sql "input sqlid:" Enter value for sql_id: 1rhvj2yy0kyfn ./1rhvj2yy0kyfn.html
相關(guān)的信息如下:
這個(gè)腳本還是很實(shí)用的,如果大家想要對(duì)某個(gè)sql去做優(yōu)化,可以考慮先用這個(gè)腳本收集相關(guān)的信息,有個(gè)大致了解后做優(yōu)化會(huì)方便也快一點(diǎn)。
這份實(shí)用的sql腳本怎么領(lǐng)取呢?
1.請(qǐng)?jiān)谠u(píng)論區(qū)評(píng)論+點(diǎn)贊+轉(zhuǎn)發(fā)
2.點(diǎn)擊關(guān)注,關(guān)注本頭條號(hào)
3.進(jìn)入頭條號(hào)主頁(yè)面,右上角有私信功能,私信小編:spoolsql
同時(shí)希望大家多多轉(zhuǎn)發(fā)分享給更多的朋友哦!
ps:大家關(guān)鍵詞一定要打?qū)?..私信太多,可能看不過(guò)來(lái),或者大家加我微信18825144300找我拿也行
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。