<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 使用 Excel VBA 和 Selenium > 原文: [https://www.guru99.com/excel-vba-selenium.html](https://www.guru99.com/excel-vba-selenium.html) ## 什么是使用硒的數據收集? 硒可以歸類為自動化工具,可幫助從 HTML 網頁抓取信息以利用 Google chrome 進行網頁抓取。 在本教程中,您將學習: * [什么是使用硒的數據收集?](#1) * [如何在使用 Selenium 執行數據抓取之前準備 Excel 宏?](#2) * [如何使用 VBA 打開 Goog??le Chrome?](#3) * [如何使用 VBA 在 Google chrome 中打開網站?](#4) * [如何使用 VBA 從網站上抓取信息?](#5) ## 如何在使用 Selenium 執行數據抓取之前準備 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)**初始化一個新的子例程,并將其命名為 test2。 ``` Sub test2() End sub ``` 以下是模塊中的結果:- ![](https://img.kancloud.cn/8a/f8/8af8f65fd7a8e935e5ad31f70aceabb7_639x97.png) **步驟 5)**訪問“工具”選項卡下的引用選項,并引用 Selenium 類型庫。 以下庫將作為該模塊的參考,因為它有助于打開 google chrome,并有助于宏腳本的開發。 ![](https://img.kancloud.cn/b3/b5/b3b587fa68b3f709b6495cb45256033b_526x453.png) 現在,Excel 文件已準備就緒,可以與 Internet Explorer 進行交互。 下一步將是合并一個宏腳本,該腳本有助于以 HTML 抓取數據。 ## 如何使用 VBA 打開 Goog??le Chrome? 這是使用 VBA 打開 Goog??le Chrome 瀏覽器的步驟 **步驟 1)**聲明并初始化子例程中的變量,如下所示 ``` Sub test2() Dim driver as new webdriver Dim rowc, cc, columnC as integer ``` **步驟 2)**要使用硒和 VBA 打開 google chrome,請編寫 driver.start“ chrome”,然后按 **F5** 。 以下是代碼。 ``` Sub test2() Dim driver as new webdriver Dim rowc, cc, columnC as integer Driver.start "Chrome" Application.Wait Now+Timevalue("00:00:20") End sub ``` 該模塊的結果如下:- ![](https://img.kancloud.cn/e4/27/e427a792071615e04280db3a6065202b_1292x701.png) ## 如何使用 VBA 在 Google chrome 中打開網站? 一旦您能夠使用 VBA 訪問 Google chrome,下一步就是合并使用 VBA 對網站的訪問。 通過 get 函數可以方便地完成此操作,其中 URL 必須在屬性中作為雙引號傳遞。 按照顯示的以下步驟 該模塊如下所示:- ![](https://img.kancloud.cn/f7/90/f7905c79242c59b80617421e79e1a152_705x293.png) 按 F5 執行宏。 以下網頁將在谷歌瀏覽器中打開,如下所示 ``` Sub test2() Dim driver as new webdriver Dim rowc, cc, columnC as integer Driver.start "Chrome" Driver.get "http://demo.guru99.com/test/web-table-element.php" Application.Wait Now+Timevalue("00:00:20") End sub ``` ![](https://img.kancloud.cn/d9/e9/d9e9c3c3a831622ae07c1b2856d2cfc8_1278x759.png) 現在,excel 宏已準備好執行抓取任務。 下一步將顯示如何通過應用硒和 VBA 提取信息。 ## 如何使用 VBA 從網站中抓取信息? 假設日間交易員希望每天訪問網站上的數據。 當日交易者每次點擊按鈕時,它將自動將市場數據提取到 excel 中。 在上述網站上,有必要檢查元素并觀察數據的結構。 通過按 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> ``` 源代碼如下:- 可以看出,數據被構造為單個 HTML 表。 因此,為了從 HTML 表中提取整個數據,將需要設計宏,該宏將提取 HTML 表的標題信息以及與該表關聯的相應數據。 執行以下顯示的任務:- **步驟 1)**制定一個將 HTML 頭信息作為集合運行的 for 循環。 硒驅動程序必須找到 HTML 表的標題信息。 為此,我們利用 FindElementByClass()和 FindElementByTag()方法執行顯示的任務 VBA 模塊如下所示:- ``` Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "http://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th ``` **步驟 2)**接下來,如上所述,Selenium 驅動程序將使用類似的方法來定位表數據。 您必須編寫以下代碼:- ``` Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get"http://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub ``` vba 模塊如下所示:- 可以通過 excel 表格的 Range 屬性或 excel 表格的單元格屬性來初始化 excel。 為了降低 VBA 腳本的復雜性,將收集數據初始化為工作簿中存在的工作表 2 的 excel 單元格屬性。 此外,text 屬性有助于獲取放置在 HTML 標記下的文本信息。 ``` Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get"http://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub ``` The vba module would look as follows: - ![](https://img.kancloud.cn/ec/c7/ecc7cd9e71c3572b74169c8e00b8a2c9_1131x385.png) **步驟 3)**宏腳本準備就緒后,將子例程傳遞并分配給 excel 按鈕,然后退出 VBA 模塊。 將按鈕標記為刷新或可以對其進行初始化的任何合適的名稱。 對于此示例,按鈕被初始化為刷新。 ![](https://img.kancloud.cn/7a/e3/7ae35195e3baf49927fd8b44c787834f_794x557.png) **步驟 4)**按下刷新按鈕以獲取以下提到的輸出 ![](https://img.kancloud.cn/9c/79/9c792e6acb0eaad65cee87e321aac037_469x561.png) **步驟 5)**將 excel 中的結果與 Google chrome 的結果進行比較 ![](https://img.kancloud.cn/7a/a5/7aa539abe5faa7e816b5ee01b2b59c65_952x455.png) ### 摘要: * 硒可以歸類為自動化工具,可幫助從 HTML 網頁抓取信息以利用 Google chrome 進行網頁抓取。 * 互聯網上的抓取操作應謹慎進行。 * 刮除信息通常違反網站條款。 * 通過硒進行抓取時,它將提供多種瀏覽器支持。 * 換句話說,抓取工具還可以通過 Firefox 和 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>

                              哎呀哎呀视频在线观看