
文章目錄
- 系列簡介
- 決議網頁
- 代碼實作
- 帶上UI
系列簡介
將我的“爬蟲百戰穿山甲”團隊平時做的專案放到這個專欄里吧,
僅供學習研究使用,如有侵權,私信我洗掉,不得轉載
本系列不多廢話,小白入門爬蟲可以先看一下我的另一個專欄:點擊進入:精寫15篇,帶你入門Python爬蟲
里面有十一篇教程,帶四個專案,
決議網頁

如果找不到sug的話可以多搜幾次,另一個包也有這些東西,但是post上去會報錯,
那個包的資料格式是:“query”,避個雷,

往下翻,找到了form data,
于是就可以撰寫代碼了:
代碼實作
import requests
import json
url = "https://fanyi.baidu.com/sug"
# 定義請求的引數
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36 Edg/86.0.622.38'
}
in_data = input("請輸入:")
data = {'kw': in_data}
# 創建請求, 發送請求, 爬取資訊
res = requests.post(url, data=data,headers = headers)
# 決議結果
str_json = res.content
myjson = json.loads(str_json)
print(myjson['data'][0]['v'])
本章相對來說是很簡單的,今天太累了,上面這串代碼美中不足的地方在于可以英譯漢,無法漢譯英,估計是被反了,
帶上UI
UI由團隊成員“應X”出品
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
# 設定主視窗的標題
self.setWindowTitle("百度翻譯客戶端——Python版本 Write from 87-MyFriends")
# 設定視窗大小
self.resize(1500, 850)
# 設定視窗不可改變大小
self.setFixedSize(self.width(), self.height())
self.path = None
self.txtEditor = None
self.txtATranslate = None
self.txtEditor_txt = None
self.txtATranslate_txt = None
# 訊息欄
self.status = self.statusBar()
self.status.showMessage('歡迎來到百度翻譯客戶端,由Python PyQt5 和 requests 模塊大力支持,write with 87-MyFriends.', 10000)
# 控制元件設定
self.initUi()
def initUi(self):
# 提示文本
self.txtEditor_txt = QLabel(self)
self.txtEditor_txt.setText('文本輸入框(待翻譯文本輸入)')
self.txtEditor_txt.setGeometry(300, 0, 100, 100)
self.txtATranslate_txt = QLabel(self)
self.txtATranslate_txt.setText('翻譯輸出框(已翻譯文本輸出)')
self.txtATranslate_txt.setGeometry(1050, 0, 100, 100)
# 文本輸入框(待翻譯)
self.txtEditor = QTextEdit(self)
self.txtEditor.setGeometry(40, 70, 700, 700)
# 文本輸出框(已翻譯)
self.txtATranslate = QTextEdit(self)
self.txtATranslate.setGeometry(760, 70, 700, 700)
# 底部超鏈接
link = QLabel(self)
link.setText(
'詳細釋義請參照<a href="https://fanyi.baidu.com">百度翻譯</a>,若本產品使用不方便,請下載<a href="https://fanyi.baidu.com/client/download/redirect">百度翻譯桌面端(官方)</a>')
link.setGeometry(840, 780, 1000, 50)
# 選單欄控制元件設定函式
self.initMenuBar()
def initMenuBar(self):
menuBar = self.menuBar()
textMenu = menuBar.addMenu('文本(&T)')
helpMenu = menuBar.addMenu('幫助(&H)')
# ==== 文本部分 ==== #
translate_btn = QAction(QIcon('./images/icon.ico'), 'Translate 翻譯', self)
translate_btn.setShortcut('Ctrl+T')
translate_btn.triggered.connect(self.translate)
textMenu.addAction(translate_btn)
# ==== 幫助部分 ==== #
aHelpAbout = QAction('關于(&A)...', self)
aHelpAbout.triggered.connect(self.onHelpAbout)
helpMenu.addAction(aHelpAbout)
def translate(self):
url = "https://fanyi.baidu.com/sug"
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36 Edg/86.0.622.38'
}
in_data = input("請輸入:")
data = {'kw': in_data}
# 創建請求, 發送請求, 爬取資訊
res = requests.post(url, data=data,headers = headers)
# 決議結果
str_json = res.content
myjson = json.loads(str_json)
#print(myjson['data'][0]['v'])
self.txtATranslate.setPlainText(myjson['data'][0]['v'])
def onHelpAbout(self):
QMessageBox.information(self, '資訊', '作者:87-MyFriends\n著作權所有')
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setWindowIcon(QIcon('./images/icon.ico'))
main = MainWindow()
main.show()
sys.exit(app.exec_())
不過需要安裝QT環境,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/276201.html
標籤:python
上一篇:os模塊的簡單使用
