日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python中使用 Selenium 實現(xiàn)網(wǎng)頁截圖實例

系統(tǒng) 1810 0

Selenium 是一個可以讓瀏覽器自動化地執(zhí)行一系列任務(wù)的工具,常用于自動化測試。不過,也可以用來給網(wǎng)頁截圖。目前,它支持 Java、C#、Ruby 以及 Python 四種客戶端語言。如果你使用 Python,則只需要在命令行里輸入“sudo easy_install selenium”并回車,即可安裝 selenium 的 Python 版本的客戶端支持。

以 Python 為例,我們可以使用下面的腳本來給指定頁面(比如腳本之家首頁)截圖:

            
# -*- coding: utf-8 -*-
#
# author: oldj 
            
              
#

from selenium import webdriver
import time


def capture(url, save_fn="capture.png"):
  browser = webdriver.Firefox() # Get local session of firefox
  browser.set_window_size(1200, 900)
  browser.get(url) # Load page
  browser.execute_script("""
    (function () {
      var y = 0;
      var step = 100;
      window.scroll(0, 0);

      function f() {
        if (y < document.body.scrollHeight) {
          y += step;
          window.scroll(0, y);
          setTimeout(f, 50);
        } else {
          window.scroll(0, 0);
          document.title += "scroll-done";
        }
      }

      setTimeout(f, 1000);
    })();
  """)

  for i in xrange(30):
    if "scroll-done" in browser.title:
      break
    time.sleep(1)

  browser.save_screenshot(save_fn)
  browser.close()


if __name__ == "__main__":

  capture("http://www.jb51.net")

            
          

注意到,上面的代碼中,我并沒有在打開頁面后立即截圖,而是先在頁面上執(zhí)行了一段 JavaScript 腳本,先將頁面的滾動條拖到最下方,再拖回頂部,然后才截圖。這樣的好處是如果頁面下方有一些延遲加載的內(nèi)容,在這個操作之后一般也都已加載了。

與 PageSaver 等瀏覽器插件相比,Selenium 功能更為強大,例如,它可以在頁面上注入并執(zhí)行一段 JS,還可以模擬鼠標(biāo)點擊等行為,而且可以同時運行多個實例(多個線程同時截圖)。這樣看來,使用 Selenium 來給頁面截圖似乎是一個不錯的選擇。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 清水河县| 当涂县| 河北区| 天镇县| 葫芦岛市| 阜新| 桐乡市| 平舆县| 和政县| 柳河县| 海阳市| 扬州市| 桃园县| 甘肃省| 屏南县| 奉新县| 新晃| 新昌县| 唐海县| 五指山市| 香港| 中西区| 余庆县| 峨山| 阿拉善左旗| 区。| 静乐县| 龙江县| 哈尔滨市| 大姚县| 永登县| 镇巴县| 辰溪县| 华宁县| 腾冲县| 建德市| 凉城县| 教育| 泸定县| 永城市| 星子县|