分享成果,隨喜正能量】人生,既為過客,何須執著,有些事情,注定無法左右,總要學會放下,懂得隨緣。你所追求的,也許最后是一場空,不是你不夠努力,是一開始,結局已經注定。。
《VBA信息獲取與處理》教程是我推出第六套教程,目前已經是第一版修訂了。這套教程定位于最高級,是學完初級,中級后的教程。這部教程給大家講解的內容有:跨應用程序信息獲得、隨機信息的利用、電子郵件的發送、VBA互聯網數據抓取、VBA延時操作,剪貼板應用、Split函數擴展、工作表信息與其他應用交互,FSO對象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定制工作表信息函數等等內容。程序文件通過32位和64位兩種OFFICE系統測試。是非常抽象的,更具研究的價值。
教程共兩冊,八十四講。今日的內容是專題八“VBA與HTML文檔”:查找百度首頁的網頁元素
大家好,我們開始HTML DOM常見對象的方法的講解,所謂的方法就是對象自身的動作。HTML DOM 方法就是我們可以在節點(HTML 元素)上執行的動作,比如添加或修改元素。
一些常用的 HTML DOM 方法:
getElementById(id) 獲取帶有指定 id 的節點(元素)
getElementsByTagName() 返回包含帶有指定標簽名稱的所有元素的節點列表(集合/節點數組)。
getElementsByClassName() 返回包含帶有指定類名的所有元素的節點列表。
appendChild(node) 插入新的子節點(元素)
removeChild(node) 刪除子節點(元素)
insertBefore() 在指定的子節點前面插入新的子節點。
getAttribute() 返回指定的屬性值。
HTML DOM 方法還有很多,我們經常利用的就是上述前三個我用紅色標記的方法。
所謂訪問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 中無效。
有了上面的理論講解,我們看看在實際的應用中如何查找所需要的網頁元素:
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屬性。
我們去捕捉百度首頁,那個提交搜索的表單。這個表單的名稱是”f”,然后查詢它的innerHtml和OuterHtml。
Sub MYNZA() '捕捉百度首頁,提交搜索的表單
【代碼見教程】
End Sub
代碼截圖:
輸出結果:
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
我20多年的VBA實踐經驗,全部濃縮在下面的各個教程中,教程學習順序:
【分享成果,隨喜正能量】做人是一件很麻煩的事,所有說法和實情之間都存在這巨大的空隙,好像一生都在和這個東西掙扎,分辨力越強這空隙越深不見底,最后似乎只好把空虛視為答案和真相。。
代碼一般情況下分為兩種,一種是程序功能頁的源文件或叫源代碼,可以修改網頁功能及顯示效果,往往由技術人員自己掌握。另一種則是由系統編譯之后生成的HTML源代碼,這些源代碼一般是給瀏覽器看的,通過HTML超文本編輯語言設計網頁的色彩、布局、寬高、樣式、動態效果等內容。在建設網站的過程中也可以用來調試頁面顯示異常及問題分析。
一般上網者看到的網頁都包含有HTML源代碼嗎,這些代碼告訴瀏覽器應該以哪種方式展現網頁內容,可以理解為機器代碼,是開發者與瀏覽器達成共識的呈現,并非用于普通瀏覽者識別。那么如果想要查看網頁源代碼應該如何操作呢?
第一種方法:在當前網頁點右鍵“查看網頁源代碼”:
第二種方法:如果點右鍵沒有如上菜單,可以直接使用快捷鍵“ALT+V+C”,也可以在彈出的菜單里找到“查看網頁源文件”選項。一般出現在當前網頁的右上角。
以上二種方法是常用的查看網頁源代碼的方法,一般是為了便于分析HTML代碼,技術人員專用。普通瀏覽者看到的則是一堆代碼,除了漢字完全就看不明白是什么。
當你獲得某個sql的sql_id時,怎么去一鍵獲得這個sql的一些信息呢,例如列的情況、執行計劃等等..腳本有點長,建議大家用電腦來看..
下面用一個簡單測試來演示下,附腳本領取方式。
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;
太長了...所以這里截部分圖做演示:
SQL> @/home/oracle/sql/spoolsql.sql "input sqlid:" Enter value for sql_id: 1rhvj2yy0kyfn ./1rhvj2yy0kyfn.html
相關的信息如下:
這個腳本還是很實用的,如果大家想要對某個sql去做優化,可以考慮先用這個腳本收集相關的信息,有個大致了解后做優化會方便也快一點。
這份實用的sql腳本怎么領取呢?
1.請在評論區評論+點贊+轉發
2.點擊關注,關注本頭條號
3.進入頭條號主頁面,右上角有私信功能,私信小編:spoolsql
同時希望大家多多轉發分享給更多的朋友哦!
ps:大家關鍵詞一定要打對...私信太多,可能看不過來,或者大家加我微信18825144300找我拿也行
*請認真填寫需求信息,我們會在24小時內與您取得聯系。