大型情感劇集selenium:9_selenium配合Pillow完成瀏覽器局部截圖

      網友投稿 909 2022-05-29

      大型情感劇集Selenium:9_selenium配合Pillow完成瀏覽器局部截圖

      意外之喜

      上次說到,在寫selenium大型情感劇集的時,提到某盤的免費工具,存在復制用戶剪切板獲取用戶資源的問題。剛發完文章第二天,就被人惡意投訴,取消了我那篇文章的原創。一時氣不過申訴了下,沒想到成功了,沒抱希望的事情居然有人受理。

      本來不打算繼續寫這個系列了,看在申訴成功的份上,今天寫一篇涉及但不僅限于selenium的知識

      網頁截圖

      上次提到了selenium的四種截圖方法,最終截圖了整張網頁。但很多時候,我們僅僅需要截圖部分的內容。比如截取某個關鍵信息,或者現在已經不常見的截圖驗證碼(現在都是各種按規則點擊…)。那么我們該如何進行部分元素的截圖呢?今天我們就來舉個例子…

      昨天51test的小編聯系,說希望我能給網站投稿關于測試的帖子,要求與測試相關且文章篇幅在1000字以上。

      我立馬翻了下簡書首頁,54篇文章5.23萬字。除去之前寫的幾篇灌水帖,字數上貌似達標了。但在學習之外,總結文章至公眾號已經很累了,再投稿精力上實在有些扛不住…那么今天就做個練習通過selenium與Pillow,截圖紅框中的內容吧

      代碼分析

      要局部截圖,首先正常的網頁登陸后,我們需要定位到這個框體,F12看看如何定位:

      那么接下來需要引入兩個方法

      element.location

      獲取element的位置,返回值是一個x,y的坐標點:

      {‘x’: 486, ‘y’: 86}

      element.size

      獲取element的元素大小即長和寬,這個比較好理解:

      {‘height’: 119, ‘width’: 625}

      畫地為牢

      我們知道了x,y,height,width,如何能把這個元素的四個角框起來呢?用下圖說明:

      那我們現在要做的就是進行相關的摳圖即可。

      圖片裁剪

      Python操作圖片的庫很多,但最經典的莫過于Pillow了。

      Pillow安裝

      在命令行下輸入:pip instlal Pillow 即可

      剪切代碼

      剪切代碼我們只需要從Pillow中引入Image子模塊,然后使用剪裁方法crop即可實現,代碼如下:

      img?=?Image.open('screenshort.png') title?=?img.crop((left,?top,?right,?bottom)) title.save('title.png')

      最終實現

      代碼:

      #?-*-?coding:?utf-8?-*- #?@Author???:?王翔 #?@JianShu??:?清風Python #?@Date?????:?2019/7/15?23:24 #?@Software?:?PyCharm #?@version??:Python?3.7.3 #?@File?????:?SaveLongPicture.py import?os from?selenium?import?webdriver from?PIL?import?Image class?SaveLongPicture: ????#?清風Python個人主頁 ????BaseUrl?=?"https://www.jianshu.com/u/d23fd5012bed" ????#?腳本目錄 ????BaseDir?=?os.path.dirname(os.path.realpath(__file__)) ????def?__init__(self): ????????self.driver?=?self.init_driver() ????????self.long_picture?=?os.path.join(self.BaseDir,?'BreezePython.png') ????@staticmethod ????def?init_driver(): ????????options?=?webdriver.ChromeOptions() ????????options.add_argument('--start-maximized') ????????options.add_argument('disable-infobars') ????????return?webdriver.Chrome(options=options) ????def?prepare_work(self): ????????self.driver.get(self.BaseUrl) ????????self.driver.add_cookie(cookie) ????????self.driver.refresh() ????????self.base_handle?=?self.driver.current_window_handle ????def?add_cookie(self): ????????self.driver.get(self.BaseUrl) ????????self.driver.add_cookie(cookie) ????????self.driver.refresh() ????def?save_crop_img(self): ????????self.driver.get(self.BaseUrl) ????????#?定位元素 ????????title?=?self.driver.find_element_by_class_name('main-top') ????????#?打印元素位置、元素尺寸 ????????print(title.location,?title.size) ????????#?保存圖片 ????????self.driver.get_screenshot_as_file(self.long_picture) ????????#?元素參數獲取 ????????left?=?title.location.get('x') ????????top?=?title.location.get('y') ????????right?=?title.size.get('width')?+?left ????????bottom?=?title.size.get('height')?+?top ????????#?讀取圖片 ????????img?=?Image.open(self.long_picture) ????????#?圖片裁剪 ????????title?=?img.crop((left,?top,?right,?bottom)) ????????#?局部保存 ????????title.save('title.png') def?run(): ????#?實例化方法 ????start_test?=?SaveLongPicture() ????#?cookie登陸 ????start_test.add_cookie() ????#?裁剪圖片 ????start_test.save_crop_img() if?__name__?==?'__main__': ????cookie?=?{ ????????'name':?'remember_user_token', ????????'value':?('......') ????} ????run()

      有人會問,明明可以直接訪問的,為什么要添加cookie呢?不美觀…未登錄的情況下,顯示的消息是折行的….

      當然你可以不登錄,然后截圖這個元素內容,完全沒問題,但是處女座的人有強迫癥啊…

      The End

      今天的selenium內容就更新到這里,如果覺得這篇文章對你有幫助,可以點擊文章右下角的“在看”。

      歡迎將這篇文章或我的微信公眾號【清風Python】分享給更多喜歡python的人,謝謝你們的支持…..

      ------------

      編程語言 python Selenium

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Kubernetes 集群基本概念
      下一篇:深源恒際推出物流作業可視化智能管理解決方案
      相關文章
      亚洲熟妇无码一区二区三区| 亚洲AV永久纯肉无码精品动漫| 亚洲久本草在线中文字幕| 亚洲人av高清无码| 亚洲一区二区三区高清视频| 亚洲欧洲国产综合| 亚洲成年人电影在线观看| 久久丫精品国产亚洲av| 亚洲精品高清国产一久久| 亚洲国产人成在线观看69网站| 亚洲AV永久无码精品水牛影视| 亚洲国产精品无码久久一区二区 | 亚洲日韩精品射精日| 亚洲综合日韩久久成人AV| 国内精品久久久久久久亚洲| 亚洲欧洲国产成人综合在线观看 | 亚洲精品国产免费| 亚洲国产日韩女人aaaaaa毛片在线 | 四虎亚洲国产成人久久精品 | 91亚洲va在线天线va天堂va国产 | 亚洲成AV人片久久| 亚洲一级在线观看| 亚洲av日韩av综合| 亚洲精品无码专区在线| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲一区爱区精品无码| 国产亚洲色婷婷久久99精品91| 亚洲五月午夜免费在线视频| 亚洲综合另类小说色区| 久久国产精品亚洲综合| 久久精品国产亚洲AV无码偷窥| 亚洲最大黄色网站| 亚洲а∨天堂久久精品9966| 久久久久久亚洲av无码蜜芽| 亚洲日韩中文字幕日韩在线 | 亚洲成人国产精品| 亚洲综合伊人久久综合| 亚洲AV第一页国产精品| 亚洲国产成人资源在线软件| 亚洲熟伦熟女专区hd高清| 亚洲国产精品国产自在在线|