日韩性视频-久久久蜜桃-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 的各种开源工具自制浏览器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 中国黄色一级毛片 | 免费吃奶摸下激烈视频 | 波多野结衣电车痴汉 | 亚洲三级黄色 | 日本一区二区三区视频在线播放 | 男人激情网 | 男人天堂综合 | 无码国模国产在线观看 | 韩国美女毛片 | 日韩激情视频在线 | 国产欧美日韩三级 | 亚洲在线免费观看视频 | 国产精品不卡一区二区三区 | 女人看黄色网 | 五月婷婷狠狠干 | 色哟哟视频在线观看 | 华人永久免费视频 | 天天干网| www.日韩 | 亚洲成人一二三区 | 国产精品国产三级国产Av车上的 | 欧美无极品 | 欧美亚洲自拍偷拍 | 亚洲热在线观看 | 黄色一几片 | 一区二区视频播放 | 芭乐视频色 | 特级黄色大片 | 色眯眯av| 欧美人妻精品一区二区三区 | 色播综合 | 亚洲欧美日韩国产一区二区三区 | 中文在线а√在线8 | 精品产国自在拍 | 久久久久亚洲av无码麻豆 | 逼逼av网站 | 清纯粉嫩极品夜夜嗨av | 亚洲天堂男人 | 国产精品麻豆一区 | 亚洲免费av网站 | 东北少妇露脸无套对白 | 亚洲网址在线 | 97超级碰碰碰 | 亚洲区自拍| 婷婷激情小说网 | 无码人妻一区二区三区一 | chinese hd xxxx tube麻豆tv | 日韩av在线播放一区 | 色伊人久久| 俺也去av | 中文字幕一区二区三区在线播放 | 涩涩在线观看 | 精品国产理论 | 亚洲AV无码片久久精品 | 高潮毛片7777777毛片 | 痴女扩张宫交脱垂重口小说 | 波多野结衣av在线观看 | 狠狠精品干练久久久无码中文字幕 | 双性尿奴穿贞c带憋尿 | 日韩欧美一区二区三区在线观看 | 人妻无码中文字幕免费视频蜜桃 | 橹图极品美女无圣光 | xxxxav| 久久观看最新视频 | 女人脱了内裤趴开腿让男躁 | 色女人网| 91传媒在线播放 | 中文字幕在线观看一区 | 久草播放 | 99黄色片| 亚洲天堂成人av | 成人免费av在线 | 日韩一区中文 | xxx综合网| 久久人| 色成人综合网 | 快播视频在线观看 | 亚洲h视频在线观看 | 九热精品视频 | 韩日av| 亚洲网站在线观看 | ww欧美| 一级做a在线观看 | 日韩毛片在线看 | 亚洲破处视频 | 最近免费中文字幕 | 亚洲激情五月 | 成人在线免费电影 | 少妇裸体性生交 | 成片在线观看 | 汗汗视频| 免费看的黄色网 | 日韩毛毛片 | 久久久久久久久久久久电影 | 在线观看高清av | 阿v视频在线免费观看 | 偷偷操99| www.日日夜夜 | 精品一区二区三区免费 |