<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 使用 VBA 進行網頁搜刮 > 原文: [https://www.guru99.com/data-scraping-vba.html](https://www.guru99.com/data-scraping-vba.html) ## 什么是數據收集? 數據抓取是一種有助于將所需信息從 HTML 網頁提取到本地計算機中存在的本地文件的技術。 通常,本地文件可以對應于 excel 文件,word 文件或任何 Microsoft Office 應用程序。 它有助于引導網頁中的關鍵信息。 每天在基于研究的項目上工作時,數據抓取變得很簡單,而這樣的項目完全依賴于 Internet 和網站。 為了進一步說明該主題,讓我們以一個日間交易員為例,該日交易員運行 excel 宏,使用 VBA 將金融網站的市場信息提取到 excel 表中。 在本教程中,您將學習: * [什么是數據抓取?](#1) * [在使用 Internet Explorer 執行數據搜刮之前,如何準備 Excel 宏?](#2) * [如何使用 Excel VBA 打開 Internet Explorer?](#3) * [如何使用 VBA 在 Internet Explorer 中打開網站?](#4) * [如何使用 VBA 從網站上抓取信息?](#5) ## 在使用 Internet Explorer 執行數據搜刮之前,如何準備 Excel 宏? 在進入 excel 中的數據抓取過程之前,必須對 excel 宏文件執行某些先決條件。 這些先決條件如下:- **步驟 1)**打開一個基于 Excel 的宏,并訪問 excel 的開發人員選項。 ![](https://img.kancloud.cn/91/93/9193c511ebe7bd89bd2fe84d4431704f_1184x655.png) **步驟 2)**在“開發人員”功能區下選擇“ Visual Basic”選項。 ![](https://img.kancloud.cn/5a/a9/5aa9ffd78fb9652f4bf25826c469fc28_794x250.png) **步驟 3)**插入一個新模塊。 ![](https://img.kancloud.cn/91/2a/912abe5c0ca5af2921ca47aa9732f34a_1109x302.png) **步驟 4)**初始化新的子例程 ``` Sub test() End sub ``` 該模塊的結果如下:- ![](https://img.kancloud.cn/1f/da/1fdaaa81238cf1355e9ed1e481504747_1180x324.png) **步驟 5)**訪問“工具”選項卡下的引用選項,并引用 Microsoft HTML 對象庫和 Microsoft Internet 控件。 以下文件將作為該模塊的參考文件,因為它有助于打開 Internet Explorer,并有助于宏腳本的開發。 ![](https://img.kancloud.cn/c9/ef/c9ef1e884bc9714bc8dda034cbe05850_411x357.png) 現在,Excel 文件已準備就緒,可以與 Internet Explorer 進行交互。 下一步將是結合宏腳本,這些宏腳本將有助于 HTML 中的數據抓取。 ## 如何使用 Excel VBA 打開 Internet Explorer? **步驟 1)**如下所示在子例程中初始化變量 ``` Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ``` **步驟 2)**要使用 VBA 打開 Internet Explorer,請寫**,即 visible = true** ,然后按 **F5。** ``` Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Ie.visible=true ``` 該模塊如下所示:- ![](https://img.kancloud.cn/8d/f5/8df5957949cd704fe1a5d6bbc7ea8b99_676x202.png) ![](https://img.kancloud.cn/09/13/09130dff7b3d6534107e783427da7f35_1191x327.png) ## 如何使用 VBA 在 Internet Explorer 中打開網站? 這是使用 VBA 在 Internet Explorer 中打開網站的步驟 **步驟 1)**一旦您能夠使用 Excel VBA 訪問 Internet Explorer,則下一步將包括使用 VBA 訪問網站。 導航屬性有助于實現這一點,其中 URL 必須在屬性中作為雙引號傳遞。 按照顯示的以下步驟操作。 ``` Sub test() Dim, ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate"http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE ``` **步驟 2)-**按 F5 執行宏。 將打開以下網頁,如顯示 ![](https://img.kancloud.cn/43/8b/438b52b5b94aa7c5503d097753bbd025_1378x728.png) 現在,excel 宏已準備好執行抓取功能。 下一步將顯示如何使用 VBA 從 Internet Explorer 提取信息。 ## 如何使用 VBA 從網站中抓取信息? 假設日間交易員希望每天訪問網站上的數據。 當日交易者每次點擊按鈕時,它將自動將市場數據提取到 excel 中。 在上述網站上,有必要檢查元素并觀察數據的結構。 **步驟 1)**通過按 Control + Shift + I 訪問下面的 HTML 源代碼 ``` <table class="datatable"> <thead> <tr> <th>Company</th> <th>Group</th> <th>Pre Close (Rs)</th> <th>Current Price (Rs)</th> <th>% Change</th> </tr> ``` 源代碼如下:- ``` Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document ``` 可以看出,數據被構造為單個 HTML 表。 因此,為了從 html 表中提取整個數據,將需要設計宏,該宏以集合的形式收集數據。 然后將集合粘貼到 excel 中。 為此,所需的結果執行以下步驟:- **步驟 2)**在子例程中初始化 Html 文檔 VBA 模塊如下所示:- **步驟 3)**初始化 HTML 文檔中存在的 collection 元素 The VBA module would look as follows: - ``` Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table") ``` **步驟 4)**借助嵌套循環初始化 excel 表格單元格,如圖所示 The VBA module would look as follows: - ``` Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table") ``` 可以使用 excel 工作表的 range 屬性或通過 excel 工作表的 cell 屬性來初始化 excel。 為了降低 VBA 腳本的復雜性,將收集數據初始化為工作簿中存在的工作表 1 的 excel 單元屬性。 宏腳本準備好后,將子例程傳遞并分配給 excel 按鈕,然后退出 VBA 模塊。 將按鈕標記為刷新或可以對其進行初始化的任何合適的名稱。 對于此示例,按鈕被初始化為刷新。 ![](https://img.kancloud.cn/b0/9d/b09de2ae62dd5fac57a77146c8de04a4_615x631.png) **步驟 5)**按下刷新按鈕以獲取下述輸出 ![](https://img.kancloud.cn/19/dc/19dc0c9235ba41f117b82ad4b276c5fb_431x679.png) **步驟 6)**將 excel 中的結果與 Internet Explorer 的結果進行比較 ![](https://img.kancloud.cn/39/99/39996beabfff5b237542b553ec37c621_801x481.png) ### 摘要: * 數據抓取允許用戶僅抓取用戶想要的信息。 * 可以使用 Internet Explorer 進行刮取。 * 對于 Internet Explorer,抓取過程較慢; 但是,它可以為用戶提供所需的結果。 * 刮刮操作時應格外小心和謹慎,因為它可能會損壞和損壞用于刮刮的系統。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看