Python如何实现网页截图功能

  介绍

这篇文章将为大家详细讲解有关Python如何实现网页截图功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强>方法一,使用PyQt4的QtWebKit组件

# !/usr/bin/env  Python   #,- *安康;编码:UTF-8  - * -   import 系统   import  os.path   得到PyQt4  import  QtGui、QtCore QtWebKit   class  PageShotter (QtGui.QWidget):   def 才能__init__(自我、url、文件名、父母=None):   ,,,QtGui.QWidget.__init__(自我、父母)   ,,,self.url =, url   ,,,self.filename =,文件名   ,,,self.webpage =,没有   def 才能拍摄(自我):   ,,,webview =, QtWebKit.QWebView(自我)   ,,,webview.load (QtCore.QUrl (self.url))   ,,,self.webpage =, webview.page ()   ,,,self.connect (webview, QtCore.SIGNAL (“loadFinished (bool)“), self.save_page)   def 才能save_page(自我,完成):   ,,,# print 完成   ,,,if 完成:   ,,,,,print  u"开始截图!“   ,,,,,size =, self.webpage.mainFrame () .contentsSize ()   ,,,,,print  u"页面宽:% d,页面高:% d", %,(宽度(),size.height ())   ,,,,,self.webpage.setViewportSize (QtCore.QSize(宽度()+ 16,size.height ()))   ,,,,,img =, QtGui.QImage(大小,QtGui.QImage.Format_ARGB32)   ,,,,,painter =, QtGui.QPainter (img)   ,,,,,self.webpage.mainFrame () .render(画家)   ,,,,,painter.end ()   ,,,,,文件名=,self.filename;   ,,,,,if  img.save(文件名):   ,,,,,,,filepath =, os.path.join (os.path.dirname (__file__),文件名)   ,,,,,,,print  u"截图完毕:% s", % filepath   ,,,,,其他的:   ,,,,,,,print  u"截图失败“;   ,,,:   ,,,,,print  u"网页加载失败!“   ,,,self.close ()   if  __name__==癬_main__":   时间=app 才能;QtGui.QApplication (sys.argv)   shotter 才能=,PageShotter (“https://www.jb51.net/",, & # 39; shot.png& # 39;)   shotter.shot才能()   sys.exit才能(app.exec_ ())

运行后输出:

QFont:: setPixelSize:像素大小& lt;=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

<强>方法二、使用硒

# !/usr/bin/env  python   #,- *安康;编码:UTF-8  - * -   import 时间   得到selenium  import  webdriver   时间=browser  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: <代码>硒> pip  install 硒

另外,使用硒时还需要下载geckodriver来驱动第三方浏览器,对于selenium3.x版本都会使用geckodriver来驱动firefox,所以需要下载geckodriver.exe,下载地址:https://github.com/mozilla/geckodriver/releases

下载后将geckodriver.exe放在C: \ Python27即可(查看环境变量路径中是否添加C: \ Python27该路径)

关于“Python如何实现网页截图功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

Python如何实现网页截图功能