这篇文章将为大家详细讲解有关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命令安装:
pip install 硒另外,使用硒时还需要下载geckodriver来驱动第三方浏览器,对于selenium3.x版本都会使用geckodriver来驱动firefox,所以需要下载geckodriver.exe,下载地址:https://github.com/mozilla/geckodriver/releases
下载后将geckodriver.exe放在C: \ Python27即可(查看环境变量路径中是否添加C: \ Python27该路径)
关于“Python如何实现网页截图功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。
Python如何实现网页截图功能