国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中使用 Selenium 實現網頁截圖實例

2020-02-23 05:34:33
字體:
來源:轉載
供稿:網友

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

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

# -*- coding: utf-8 -*-## author: oldj <oldj.wu@gmail.com>#from selenium import webdriverimport timedef 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")

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石首市| 岑巩县| 临西县| 洛隆县| 通州市| 定日县| 沙田区| 宜章县| 肃南| 汾西县| 沁阳市| 北川| 霍州市| 精河县| 郯城县| 安平县| 阳泉市| 辽宁省| 望奎县| 香河县| 木兰县| 绥芬河市| 临安市| 平利县| 海林市| 台东县| 郓城县| 洛南县| 海淀区| 宁蒗| 苏尼特左旗| 泸定县| 城固县| 曲靖市| 惠东县| 东丰县| 桃源县| 涞水县| 安福县| 遂宁市| 杂多县|