日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

利用 python 的各种开源工具自制浏览器

發布時間:2025/3/21 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用 python 的各种开源工具自制浏览器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

0.導言

很多時候,我們有這樣的需求:想利用現在先進的HTML5和JS技術,又不想走B/S架構,想弄出個像客戶端一樣的瀏覽器外殼。本文要解決的就是這個問題,我們利用 python 環境下所提供的各種工具,編譯生成一個高度可用的制作瀏覽器。

1.準備工作

這里說一下自制瀏覽器所需要的環境與軟件。

  • windows操作系統:因為我最后要生成一個exe文件,所以操作系統環境直接利用了windows。

  • python2.7 :我利用的是python2.7的環境,這是我覺得目前用的最順手的一個環境,注:雖然我的系統是64位的,但這里安裝的python環境是32位的,因為考慮到做出來的瀏覽器的兼容性,還是用32位的環境。

  • PyQt4 :Qt 是一款GUI應用程序的開發框架,因為我們既然要做瀏覽器,圖形界面是免不了的,PyQt4是Qt在python環境下的一個實現,而且這個包中還包含了webkit瀏覽器內核,非常好用。官方網站:http://www.riverbankcomputing.co.uk/news

  • PyInstaller : 這是一個可以把python程序轉換成exe可執行程序的 python 包,也很好用。官方網址:http://www.pyinstaller.org/?

  • pywin32 : 這是 PyInstaller 需要依賴的一個包。下載地址:http://sourceforge.net/projects/pywin32/

  • UPX : 這是一款先進的可執行程序文件壓縮器,若不安裝它,運行 pyinstaller.py 會報錯。下載地址:http://sourceforge.net/projects/upx/??;下載完之后放在 PyInstaller中與pyinstaller.py的相同目錄下。

  • VerySimpleWebBrowser.py:這是一個老外用 python 寫的簡單的瀏覽器的源碼,我數了一下,總共的實際代碼只有43行,如果你電腦已經安裝了python 和 pyqt4 , 你已經可以用python環境運行它: pyhon?VerySimpleWebBrowser 。下載地址:?http://www.binpress.com/app/verysimplewebbrowser/279?

好了,需要的東西就這么多,其實都是組裝別人的東西,我沒有自己寫一行代碼。

3.制作過程

  • 安裝 python 環境

    這步就不說了~

  • 安裝 PyQt?

    這步也是一頓下一步~沒什么說的

  • 安裝 pywin32

    也是一頓下一步~

  • 安裝 pyinstaller

    這個東西下載的是源碼,我先 python setup.py install 了一下,其實我也不太清楚這步有沒有必要,因為最后還是要到它的文件夾下利用 pyinstaller.py這個文件。

  • 安裝 UPX

    這步其實就是像我上面說的,把下載后的文件 copy 到 PyInstaller的文件目錄下,(放在和 pyinstaller.py 同 一個目錄)

  • 打包?VerySimpleWebBrowser.py

    將 VerySimpleWebBrowser.py 也 copy 到 pyinstaller.py 的同目錄下。在命令行下切換到此目錄,運行 :

  • python?pyinstaller.py?-F?-w?VerySimpleWebBrowser.py

    如果沒有問題的話,現在已經生成了?VerySimpleWebBrowser.exe,這里有兩個選項, -F 表示將所有文件都打包到 exe 中, -w 表示用窗口顯示。

    最終的結果如下:

    稍微包裝一下之后就可以作為展現js的本地客戶端使用(圖可以動哦~):

    3.總結

    整個過程其實就是個拼裝過程,只要細心些就可以了~ 大家感受一下 python 的強大與便捷吧!

    4.附錄

    最后我把?VerySimpleWebBrowser.py 的源代碼貼出來吧~讓大家看看它是有多么簡單!

    """*********************?VerySimpleWebBrowser?************************This?is?a?Very?Simple?Web?Browser?implemented?over?Qt?and?QtWebKit.More?info?on:?https://codescience.wordpress.com/author:?Juan?Manuel?Garcia?<jmg.utn@gmail.com>******************************************************************* """import?sys from?PyQt4?import?QtCore,?QtGui,?QtWebKitclass?Browser(QtGui.QMainWindow):def?__init__(self):"""Initialize?the?browser?GUI?and?connect?the?events"""QtGui.QMainWindow.__init__(self)self.resize(800,600)self.centralwidget?=?QtGui.QWidget(self)self.mainLayout?=?QtGui.QHBoxLayout(self.centralwidget)self.mainLayout.setSpacing(0)self.mainLayout.setMargin(1)self.frame?=?QtGui.QFrame(self.centralwidget)self.gridLayout?=?QtGui.QVBoxLayout(self.frame)self.gridLayout.setMargin(0)self.gridLayout.setSpacing(0)self.horizontalLayout?=?QtGui.QHBoxLayout()self.tb_url?=?QtGui.QLineEdit(self.frame)self.bt_back?=?QtGui.QPushButton(self.frame)self.bt_ahead?=?QtGui.QPushButton(self.frame)self.bt_back.setIcon(QtGui.QIcon().fromTheme("go-previous"))self.bt_ahead.setIcon(QtGui.QIcon().fromTheme("go-next"))self.horizontalLayout.addWidget(self.bt_back)self.horizontalLayout.addWidget(self.bt_ahead)self.horizontalLayout.addWidget(self.tb_url)self.gridLayout.addLayout(self.horizontalLayout)self.html?=?QtWebKit.QWebView()self.gridLayout.addWidget(self.html)self.mainLayout.addWidget(self.frame)self.setCentralWidget(self.centralwidget)self.connect(self.tb_url,?QtCore.SIGNAL("returnPressed()"),?self.browse)self.connect(self.bt_back,?QtCore.SIGNAL("clicked()"),?self.html.back)self.connect(self.bt_ahead,?QtCore.SIGNAL("clicked()"),?self.html.forward)self.connect(self.html,?QtCore.SIGNAL("urlChanged(const?QUrl)"),?self.url_changed)self.default_url?=?"http://codescience.wordpress.com/"self.tb_url.setText(self.default_url)self.browse()def?browse(self):"""Make?a?web?browse?on?a?specific?url?and?show?the?page?on?theWebview?widget."""url?=?self.tb_url.text()?if?self.tb_url.text()?else?self.default_urlself.html.load(QtCore.QUrl(url))self.html.show()def?url_changed(self,?url):"""Triggered?when?the?url?is?changed"""self.tb_url.setText(url.toString())if?__name__?==?"__main__":app?=?QtGui.QApplication(sys.argv)main?=?Browser()main.show()sys.exit(app.exec_())


    轉載于:https://my.oschina.net/mayepythoner/blog/298503

    總結

    以上是生活随笔為你收集整理的利用 python 的各种开源工具自制浏览器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产黄色大片网站 | 成年人网站在线观看视频 | 国产三级三级三级三级三级 | 在线视频观看你懂得 | 91看片黄色 | 91免费在线视频观看 | 色妞在线 | jizz黄| 精品一区二区三区无码视频 | 根深蒂固在线观看 | 亚洲第一黄色 | 成人黄色动漫在线观看 | 精品久久久久久久久久久aⅴ | 日韩精品无码一区二区三区久久久 | 中国老熟女重囗味hdxx | 欧美另类极品 | 日韩爽爽视频 | 精品久久久亚洲 | 在线观看成人小视频 | 黑人100部av解禁片 | 欧美一级不卡 | 国产成人a v | 欧美激情一二三区 | 69网址| 国产精品免费无遮挡无码永久视频 | 影音先锋欧美资源 | 日本孕妇孕交 | 日韩免费观看视频 | 亚洲第一色播 | 99爱精品视频 | 蜜桃91麻豆精品一二三区 | 黑森林福利视频导航 | 正在播放欧美 | 久久久久999 | 亚洲成人一二区 | 午夜一本| 亚洲综合资源 | 无码精品一区二区免费 | 啪啪自拍| 手机av资源 | 中文字幕无码人妻少妇免费 | 欧美性猛交xx | 亚洲性网 | 女同毛片一区二区三区 | 激情自拍视频 | 69久久久久久 | 性色av一区二区三区在线观看 | 久久色资源网 | www伊人网| 黑丝美女啪啪 | 91在线看视频 | 爱情岛黄色 | 午夜精品久久久内射近拍高清 | 免费看a级片 | 青青草原在线免费观看视频 | 农村妇女毛片精品久久久 | 欧美区一区二 | 欧美色插| 一级小毛片 | 欧美大黄 | 国产午夜精品在线观看 | 黄色网页免费 | 岛国av免费观看 | 无码视频在线观看 | 亚洲精品国产福利 | 欧洲在线一区 | 爱爱免费网址 | 欧美一区三区二区在线观看 | 亚欧洲精品在线视频免费观看 | 亚洲第一黄色网址 | 蜜桃视频中文字幕 | 日本一区二区三区免费视频 | 国产福利91精品 | 亚洲美女屁股眼交8 | 午夜精品av| 99re这里只有精品首页 | 欧美日韩一区二区三区四区 | 操处女逼视频 | 国产一区网站 | 精品国产青草久久久久96 | 九九热在线播放 | 黄色成人在线网站 | аⅴ资源中文在线天堂 | 成人久久影院 | 日韩高清不卡在线 | 日韩欧美高清在线观看 | 成人18视频在线观看 | 国产91精品看黄网站在线观看 | 肉肉视频在线观看 | 免费看国产曰批40分钟粉红裤头 | 射射色| 欧美乱码精品一区二区三区 | 麻豆视频在线免费看 | 亚洲爱| 欧美手机在线视频 | 日韩乱论| aaaa黄色 | wwwxxx黄色 | 国产主播精品 |