国产探花免费观看_亚洲丰满少妇自慰呻吟_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 來給頁面截圖似乎是一個不錯的選擇。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇州市| 乐至县| 监利县| 江安县| 南陵县| 长兴县| 四平市| 攀枝花市| 温宿县| 兴山县| 渝北区| 专栏| 黄骅市| 建湖县| 河南省| 平阴县| 平江县| 正阳县| 都昌县| 寿宁县| 黄浦区| 开阳县| 武城县| 堆龙德庆县| 东丽区| 普安县| 晋江市| 沅江市| 泸水县| 博客| 萨迦县| 方山县| 白城市| 本溪市| 香河县| 陇川县| 陕西省| 日土县| 曲水县| 仁怀市| 武胜县|