<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          解放雙手 | 10行Python代碼實現(xiàn)一款網頁自動化工具

          共 2563字,需瀏覽 6分鐘

           ·

          2020-06-28 23:22


          點擊上方Python知識圈設為星標

          回復1024獲取Python資料


          61622620c0a1a6a81c220e2380684d38.webp


          閱讀文本大概需要 3?分鐘


          點擊「閱讀原文」查看pk哥原創(chuàng)精品視頻。

          各種各樣的網站在我們日常工作和學習中占據著舉足輕重的地位,學習、影音娛樂、查詢資料、協(xié)同辦公,越來越多的任務都被遷移到瀏覽器。

          因此,網頁也蘊含著很多有價值、我們能夠用得到的資源。例如,數據、歌曲、影視、文本、圖片。所以,這幾年來爬蟲這項技術也成了很多開發(fā)人員必備的技能之一。

          以Python爬蟲為例,比較常用的爬蟲手段是結合request、正則表達式等有一定門檻的工具來完成。而且,還需要對HTML、web具有一定的基礎。

          這把很多開發(fā)同學拒之門外,也讓很多初學者花費很多功夫和時間來學習爬蟲這些技能。

          其實,除了上述提到那些具有一定門檻的爬蟲知識之外,有一些另辟蹊徑的同學會選擇Selenium這款Web應用測試工具來完成爬蟲任務,它能夠像真正的用戶一樣完成一系列的操作。

          Selenium已經很好用,但是,它的大多數交互還是和Web元素之間進行的,需要使用到HTML id、xpath、CSS選擇器。雖然自動化程度高了一些,但是還不算足夠的容易使用。

          而本文的主角Helium則是在Selenium的基礎上封裝的更加高級的Web自動化工具,它能夠通過網頁端可見的標簽名稱來和Web進行交互,例如,

          • 點擊鍵盤按鍵
          • 右鍵點擊
          • 懸浮
          • 滾動鼠標
          • 拖動文件
          • 刷新
          • ......

          9be0cc3909ee650f72de8001a21171c4.webp

          通過Helium,即便不在了解Html、CSS這些知識,你依然可以輕松的完成Web自動化程序的開發(fā),輕松掌握爬蟲技能,同時能夠輔助日常重復性勞動,徹底解放你的雙手。

          Helium

          為了方便大家理解和使用,Helium作者把一些常用方法總結了一個清單。另外,在Python文件列出了公共函數,使用者可以通過閱讀這個Python文件的代碼來了解有哪些函數接口可以調用。

          在前面GIF動圖中給出了Helium與Github的交互過程,其中涉及了我們常用的操作,例如,

          • 輸入賬號密碼
          • 點擊按鈕
          • 跳轉網頁

          在這里,我就不再重復這個過程,下面以爬取網頁圖片鏈接的例子來講解一下Helium的用法,同時把Helium的常用操作串聯(lián)起來。各位可以根據自己的需求,舉一反三,來發(fā)揮Helium的價值。

          首先,來了解一下我們個人在下載圖片的過程中的具體流程。

          1. 打開百度搜索;
          2. 搜索相關圖片;
          3. 跳轉到圖片頁面;
          4. 打開圖片;
          5. 點擊下載按鈕;

          下面,就通過Helium來逐步完成上述5步。

          打開百度搜索

          Helium可以直接打開對應的網址,目前支持Chrome和火狐瀏覽器,只要用到start_chrome或者start_firefox函數,下面以Chrome瀏覽器為例,

          from?helium?import?*
          start_chrome("www.baidu.com")

          94d50f76a01ba538ea00882d83593254.webp

          搜索圖片&跳轉到圖片頁面

          搜索圖片過程中,首先需要在搜索框輸出想要的目標圖片,然后點擊百度一下或者按下ENTER鍵。

          write("詹姆斯")

          click("百度一下")
          //?或者
          press(ENTER)

          click("圖片")

          e0499726208d81eab43d748ca32b50ef.webp

          打開圖片

          在前面Helium與Github交互的示例中,我們發(fā)現(xiàn),Sign inUsername等都有標簽名稱。但是,我們在這里跳轉到圖片頁面時,發(fā)現(xiàn)每幅圖片并沒有標簽,那么我們該怎么確定點擊哪一幅圖呢?

          好在Helium兼容了Selenium的接口,我們可以通過Selenium來獲取頁面的元素,然后結合Helium的點擊就可以實現(xiàn)打開圖片這一步驟。

          //?pn1是其中一幅圖的名稱,通過名稱來獲取對應的元素,然后調用Helium的click函數點擊圖片
          img?=?driver.find_element_by_name("pn1")?
          click(img)

          0ee59ae5b8442e8789aef73aa519d327.webp

          點擊下載按鈕

          最后一步就是點擊下載按鈕,這一步和上一步類似,我們先通過Selenium的接口來獲取Web元素,然后點擊即可。

          download?=?driver.find_element_by_class_name("btn-download")
          click(download)

          26f71131c74366bc08706e8e4072cd33.webp

          到這里,就完成了整個自動化爬取圖片的過程,完成代碼如下,

          from?helium?import?*
          start_chrome("www.baidu.com")
          write("詹姆斯")
          press(ENTER)
          click("圖片")
          img?=?driver.find_element_by_name("pn1")?
          click(img)
          download?=?driver.find_element_by_class_name("btn-download")
          click(download)

          可以看出,整條爬取圖片的代碼僅僅需要10行代碼,和人為手動操作步驟一樣,非常簡單。

          除了下載圖片這項簡單的任務,我們也可以利用它開發(fā)一款自動化的工具,例如文件的上傳、編輯、下載影視音樂、B站視頻等,可以舉一反三。

          如何查詢指定元素名稱?

          在前面事例中,涉及到pn1btn-download這2個HTML層面的內容,分別是元素名稱和元素類別名稱,那么,這是怎么獲取的呢?

          其實,非常簡單,我們只需要鼠標右鍵點擊對應按鈕,然后選擇檢查即可。

          69fd26434f206e0ebd57a3cf05c9b84c.webp



          6cd06749b234d8c29d47006f60da98e5.webp
          -----------------------公眾號:Python知識圈博客:www.pyzhishiquan.com知乎Python知識圈微信視頻號:菜鳥程序員 (分享有趣的編程技巧、Python技巧)bilibili:菜鳥程序員的日常(目前原創(chuàng)視頻:16,累計播放量:55萬)

          一個學習Python的人,喜歡分享,喜歡搞事情!

          長按下圖二維碼關注,和你一起領悟Python的魅力



          Python知識圈公眾號的交流群已經建立,群里可以領取 Python 和人工智能學習資料,大家可以一起學習交流,效率更高,如果是想發(fā)推文、廣告、砍價小程序的敬請繞道一定記得備注「交流學習」,我會盡快通過好友申請哦!通過好友后私聊我「學習資料」或者「進群」都可以。

          掃碼添加,備注:交流學習




          往期推薦01

          公眾號所有文章匯總導航(2-10更新)

          02

          川普一天推特200條?Python求證一波

          03

          打基礎一定要吃透這12類 Python 內置函數


          我就知道你“在看”ba3f821e9646d341053d81dd5a6e3476.webp
          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  综合亚洲色区 | AV无码免费电影 | 性国产精品| 免费做爱毛片 | 草逼大香蕉 |