最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python制作天眼查小程序的示例代碼

 更新時間:2022年09月14日 08:54:12   作者:蘿卜大雜燴  
本文主要介紹了如何利用Python制作一個天眼查GUI程序。這次的GUI程序,我們使用的框架是PyQt5,該框架擁有比tkinter更為豐富的內(nèi)置組件,在界面美化方面,貌似也更勝一籌,快跟隨小編一起學起來吧

今天我們一起來制作一個天眼查GUI程序,開宗明義,我們先來看下最終的效果

這次的GUI程序,我們使用的框架是PyQt5,該框架擁有比tkinter更為豐富的內(nèi)置組件,在界面美化方面,貌似也更勝一籌!

從上圖也可以看出,我們的目標還是蠻遠大的,最終我們希望可以完成一個工具集合,把我們?nèi)粘.斨谐S玫墓δ芏技傻脑揋UI程序中,比如天眼查公司信息,知乎用戶知識圖譜,B視頻彈幕抓取等等。

好了,今天我們先完成天眼查的功能吧~

界面搭建

大家也都看到了,本GUI程序的整體界面還是不丑的(原諒我只敢用不丑兩個字),雖然可能目前僅僅是看起來不丑,但是背后的美化工作還是非常繁瑣的。

這里蘿卜哥也是借鑒了網(wǎng)上大神的基礎(chǔ)代碼,州的先生在PyQt5方面有頗多造詣,大家也可以多多關(guān)注哦!

整體布局

首先我們來大致看一下界面的布局情況

界面總體分為左側(cè)的 Widget 和右側(cè)的 Widget

左側(cè) Widget 部分代碼

????def?leftWidget(self):
????????self.left_close?=?QtWidgets.QPushButton(qtawesome.icon('fa.close',?color='white'),?"")?#?關(guān)閉按鈕
????????self.left_visit?=?QtWidgets.QPushButton(qtawesome.icon('fa.circle-o',?color='white'),?"")?#?空白按鈕
????????self.left_mini?=?QtWidgets.QPushButton(qtawesome.icon('fa.minus',?color='white'),?"")?#?最小化按鈕

????????self.left_label_1?=?QtWidgets.QPushButton("網(wǎng)絡(luò)抓取")
????????self.left_label_1.setObjectName('left_label')
????????self.left_label_2?=?QtWidgets.QPushButton("待開發(fā)")
????????self.left_label_2.setObjectName('left_label')
????????self.left_label_3?=?QtWidgets.QPushButton("聯(lián)系與幫助")
????????self.left_label_3.setObjectName('left_label')

????????self.left_button_1?=?QtWidgets.QPushButton(qtawesome.icon('fa.eye',?color='white'),?"天眼查")
????????self.left_button_1.setObjectName('left_button')
????????self.left_button_2?=?QtWidgets.QPushButton(qtawesome.icon('fa.bullhorn',?color='white'),?"知乎")
????????self.left_button_2.setObjectName('left_button')
????????self.left_button_3?=?QtWidgets.QPushButton(qtawesome.icon('fa.bold',?color='white'),?"B站")
????????self.left_button_3.setObjectName('left_button')
????????...

左側(cè)部分,主要是一些功能按鈕的布局,我們可以在一個函數(shù)當中完成這些

對于右側(cè) Widget,我們需要區(qū)分不同的功能,比如天眼查代碼

????def?tianyanchaWidget(self):
????????self.left_button_widget_1?=?QtWidgets.QWidget()
????????self.left_button_widget_1.setGeometry(QtCore.QRect(10,?10,?591,?461))
????????self.left_button_widget_1.setObjectName("left_button_1")
????????self.gridLayout?=?QtWidgets.QGridLayout(self.left_button_widget_1)
????????self.gridLayout.setContentsMargins(0,?0,?0,?0)
????????self.gridLayout.setObjectName("gridLayout")
????????self.lineEdit?=?QtWidgets.QLineEdit()
????????self.lineEdit.setObjectName("lineEdit")
????????self.gridLayout.addWidget(self.lineEdit,?0,?1,?1,?7)
????????self.pushButton?=?QtWidgets.QPushButton(qtawesome.icon('fa.search',?color='black'),?"Search")
????????self.pushButton.setObjectName("pushButton")
????????self.gridLayout.addWidget(self.pushButton,?0,?0,?1,?1)
????????#?下載按鈕
????????self.downButton?=?QtWidgets.QPushButton(qtawesome.icon('fa.download',?color='black'),?"Download")
????????self.downButton.setObjectName("downButton")
????????self.gridLayout.addWidget(self.downButton,?0,?8,?1,?1)
????????self.textEdit?=?QtWidgets.QTextEdit(self.left_button_widget_1)
????????self.textEdit.setObjectName("textEdit")
????????self.gridLayout.addWidget(self.textEdit,?3,?0,?1,?9)
????????self.right_layout.addWidget(self.left_button_widget_1,?0,?0,?1,?9)

為不同的功能設(shè)置不同的QtWidgets.QWidget(),這樣方便我們后面點擊左側(cè)不同按鈕時,右側(cè)界面跟著切換

大致的布局就是這些,當然還有一些界面美化的工作,我們簡單看下

界面美化

美化工作我們主要使用函數(shù)setStyleSheet來進行,其實也就是為各個組件添加樣式,類似于Web應(yīng)用的CSS

優(yōu)化函數(shù)

????def?leftStyle(self):
????????self.left_close.setFixedSize(15,?15)?#?設(shè)置關(guān)閉按鈕的大小
????????self.left_visit.setFixedSize(15,?15)?#?設(shè)置按鈕大小
????????self.left_mini.setFixedSize(15,?15)?#?設(shè)置最小化按鈕大小

????????self.left_close.setStyleSheet(
????????'''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{background:red;}''')
????????self.left_visit.setStyleSheet(
????????'''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{background:yellow;}''')
????????self.left_mini.setStyleSheet(
????????'''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{background:green;}''')

????????self.left_widget.setStyleSheet('''
????????QPushButton{border:none;color:white;}
????????QPushButton#left_label{
????????border:none;
????????border-bottom:1px?solid?white;
????????font-size:18px;
????????font-weight:700;
????????font-family:?"Helvetica?Neue",?Helvetica,?Arial,?sans-serif;
????????}
????????QPushButton#left_button:hover{border-left:4px?solid?red;font-weight:700;}
????????QWidget#left_widget{
????????background:gray;
????????border-top:1px?solid?white;
????????border-bottom:1px?solid?white;
????????border-left:1px?solid?white;
????????border-top-left-radius:10px;
????????border-bottom-left-radius:10px;
????????}
????????''')

可以看到,美化的過程也確實就是添加樣式的過程,如果對于CSS比較熟悉的小伙伴,在這里應(yīng)該也不陌生吧

好了,界面部分大致就是這些,下面我們來看看天眼查信息的爬取部分

天眼查爬蟲

天眼查相信大家都比較熟悉,一個用于查詢公司或者個人相關(guān)信息的網(wǎng)站。

獲取信息

由于該網(wǎng)站的很多信息也都是爬蟲獲取的,所以其反爬手段也是極其高明,這里我們沒有對Web端進行爬取,而是選擇了小程序,通過對天眼查小程序的抓包,可以獲取到其請求公司的時候所使用的header以及對應(yīng)的URL,我們拿到之后通過Postman進行測試如下

我們只需要在請求上面的URL的時候,在header當中攜帶對應(yīng)的Authorization信息就可以,而且經(jīng)過測試,該Authorization信息的過期時間非常長,長到我還沒有摸清楚到底多久會過期,反正獲取了一個之后,就一直可以使用,真好!

代碼編寫

拿到請求方法時候,我們就可以編寫代碼了,這反而是比較簡單的一步

????def?query(self):
????????company_name?=?self.lineEdit.text()
????????if?not?company_name:
????????????QMessageBox.information(self,?"Error",?"公司名稱不能為空",
????????????????????????????????????QMessageBox.Yes)
????????????return
????????#?獲取基本信息
????????headers?=?{
????????????'User-Agent':?'Mozilla/5.0?(Macintosh;?Intel?Mac?OS?X?10_15_7)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/97.0.4692.71?Safari/537.36',
????????????'version':?'TYC-XCX-WX',
????????????'Host':?'api9.tianyancha.com',
????????????'Authorization':?'0###2088812821785822###1661951360266###fec9a76739ba0efd0a7f8b0b4a9a0074',
????????}
????????url?=?f'https://api9.tianyancha.com/services/v3/search/sNorV3/{company_name}'
????????response?=?requests.get(url,?headers=headers)
????????response_json,?data?=?response.json(),?dict()
????????if?response_json['state']?==?'ok':
????????????data?=?response_json.get('data',?{})
????????...

上面的函數(shù)會返回處理過的公司信息數(shù)據(jù),然后我們通過 Button 的綁定事件來調(diào)用該函數(shù),并把數(shù)據(jù)輸出到組件textEdit

self.pushButton.clicked.connect(self.query)
self.textEdit.setText(company_info_str)

至此,我們這個天眼查工具就完成了~

結(jié)果展示

下面我們來看看最終的效果吧

到此這篇關(guān)于基于Python制作天眼查小程序的示例代碼的文章就介紹到這了,更多相關(guān)Python天眼查內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • 解決Mac下首次安裝pycharm無project interpreter的問題

    解決Mac下首次安裝pycharm無project interpreter的問題

    今天小編就為大家分享一篇解決Mac下首次安裝pycharm無project interpreter的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • opencv python 基于KNN的手寫體識別的實例

    opencv python 基于KNN的手寫體識別的實例

    這篇文章主要介紹了opencv python 基于KNN的手寫體識別的實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • python代碼實現(xiàn)圖書管理系統(tǒng)

    python代碼實現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細介紹了python代碼實現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • django中的圖片驗證碼功能

    django中的圖片驗證碼功能

    這篇文章主要介紹了django中的圖片驗證碼功能,需要的朋友可以參考下
    2019-09-09
  • python?subprocess.run中的具體使用

    python?subprocess.run中的具體使用

    subprocess.run是Python3.5及以上版本中用于運行子進程的函數(shù),它提供了更簡單和更強大的方式來創(chuàng)建和管理子進程,本文就來詳細的介紹一下,感興趣的可以了解一下
    2025-01-01
  • Python利用隨機函數(shù)生成變化圖形詳解

    Python利用隨機函數(shù)生成變化圖形詳解

    這篇文章主要介紹了如何在Python中利用隨機函數(shù)生成變化的圖形,文中的示例代碼講解詳細,對我們學習有一定吧參考價值,需要的可以了解一下
    2022-04-04
  • Python: tkinter窗口屏幕居中,設(shè)置窗口最大,最小尺寸實例

    Python: tkinter窗口屏幕居中,設(shè)置窗口最大,最小尺寸實例

    這篇文章主要介紹了Python: tkinter窗口屏幕居中,設(shè)置窗口最大,最小尺寸實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python3讀取和寫入excel表格數(shù)據(jù)的示例代碼

    Python3讀取和寫入excel表格數(shù)據(jù)的示例代碼

    這篇文章主要介紹了Python3讀取和寫入excel表格數(shù)據(jù)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • django 使用 PIL 壓縮圖片的例子

    django 使用 PIL 壓縮圖片的例子

    今天小編就為大家分享一篇django 使用 PIL 壓縮圖片的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python實戰(zhàn)之用emoji表情生成文字

    python實戰(zhàn)之用emoji表情生成文字

    這篇文章主要介紹了python實戰(zhàn)之用emoji表情生成文字,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05

最新評論

田东县| 靖边县| 阳高县| 江津市| 新泰市| 北宁市| 祥云县| 盈江县| 湖口县| 托克逊县| 浏阳市| 伊宁县| 洞头县| 团风县| 庆城县| 井陉县| 涟水县| 新疆| 佛教| 黎城县| 南宫市| 鄂伦春自治旗| 湖州市| 齐河县| 桂阳县| 资兴市| 巴南区| 淅川县| 黑龙江省| 专栏| 石狮市| 射洪县| 贵溪市| 察雅县| 瑞昌市| 四平市| 遵义县| 鄂托克前旗| 阳西县| 车险| 京山县|