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

首頁 > 編程 > Python > 正文

Python實現的網頁截圖功能【PyQt4與selenium組件】

2020-02-15 22:22:30
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現的網頁截圖功能。分享給大家供大家參考,具體如下:

方法一、使用PyQt4的QtWebKit組件

#!/usr/bin/env python# -*- coding: UTF-8 -*-import sysimport os.pathfrom PyQt4 import QtGui,QtCore,QtWebKitclass PageShotter(QtGui.QWidget):  def __init__(self,url,filename,parent=None):    QtGui.QWidget.__init__(self,parent)    self.url = url    self.filename = filename    self.webpage = None  def shot(self):    webview = QtWebKit.QWebView(self)    webview.load(QtCore.QUrl(self.url))    self.webpage = webview.page()    self.connect(webview,QtCore.SIGNAL("loadFinished(bool)"),self.save_page)  def save_page(self,finished):    #print finished    if finished:      print u"開始截圖!"      size = self.webpage.mainFrame().contentsSize()      print u"頁面寬:%d,頁面高:%d" % (size.width(),size.height())      self.webpage.setViewportSize(QtCore.QSize(size.width()+16,size.height()))      img = QtGui.QImage(size, QtGui.QImage.Format_ARGB32)      painter = QtGui.QPainter(img)      self.webpage.mainFrame().render(painter)      painter.end()      filename= self.filename;      if img.save(filename):        filepath = os.path.join(os.path.dirname(__file__), filename)        print u"截圖完畢:%s" % filepath      else:        print u"截圖失敗";    else:      print u"網頁加載失敗!"    self.close()if __name__=="__main__":  app = QtGui.QApplication(sys.argv)  shotter = PageShotter("https://www.jb51.net/", 'shot.png')  shotter.shot()  sys.exit(app.exec_())

運行后輸出:

QFont::setPixelSize: Pixel size <= 0 (0)
開始截圖!
頁面寬:1058,頁面高:9819
截圖完畢:C:/py/jb51PyDemo/src/Demo/shot.png

注:

Python2的32位操作系統安裝包可至此下載:https://www.jb51.net/softs/548192.html
64位操作系統下對應PyQt安裝包可至此下載:https://www.jb51.net/softs/548197.html)

Python3可直接使用pip命令安裝PyQt5庫,如:

pip3 install PyQt5-sip

方法二、使用selenium

#!/usr/bin/env python# -*- coding: UTF-8 -*-import timefrom selenium import webdriverbrowser = webdriver.Firefox()browser.set_window_size(1055, 800)browser.get("https://www.jb51.net/")browser.find_element_by_id("idClose").click()time.sleep(5)browser.save_screenshot("shot.png")browser.quit()

PS:selenium庫同樣可以使用pip命令安裝:

pip install selenium

另外,使用selenium時還需要下載geckodriver來驅動第三方瀏覽器,對于selenium3.x版本都會使用geckodriver來驅動firefox,所以需要下載geckodriver.exe,下載地址:https://github.com/mozilla/geckodriver/releases

下載后將geckodriver.exe放在C:/Python27即可(查看環境變量path中是否添加C:/Python27該路徑)

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python圖片操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 津南区| 罗源县| 商水县| 黄山市| 新绛县| 南陵县| 海城市| 屏东市| 香港 | 昭苏县| 松桃| 庆安县| 通州区| 故城县| 罗定市| 腾冲县| 夏邑县| 望奎县| 潍坊市| 双峰县| 乐东| 温宿县| 皮山县| 永丰县| 嘉善县| 徐汇区| 和硕县| 高邑县| 咸丰县| 杨浦区| 左贡县| 沧州市| 江华| 临江市| 进贤县| 高密市| 峨山| 弥渡县| 高陵县| 崇义县| 会东县|