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

首頁 > 編程 > Python > 正文

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

2019-11-25 18:19:04
字體:
供稿:網(wǎng)友

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

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

# -*- 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://m.survivalescaperooms.com")

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 正镶白旗| 荆州市| 钦州市| 鄂州市| 嫩江县| 梨树县| 龙陵县| 香格里拉县| 株洲县| 宾阳县| 来凤县| 乌审旗| 内丘县| 曲周县| 全南县| 西充县| 石渠县| 依兰县| 肃南| 类乌齐县| 通海县| 乐平市| 高安市| 通山县| 汪清县| 新蔡县| 曲阳县| 额尔古纳市| 临颍县| 曲水县| 惠来县| 苏尼特右旗| 马边| 郓城县| 桃园市| 潮州市| 贞丰县| 丹棱县| 逊克县| 泰兴市| 偏关县|