爬蟲百戰穿山甲(2):百度翻譯爬蟲

專注的阿熊發表於2021-04-15

import requests

import json

url = "

        # 定義請求的引數

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('外匯跟單gendan5.com 翻譯輸出框(已翻譯文字輸出) ')

        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=" 百度翻譯 </a> 。若本產品使用不方便,請下載 <a href=" 百度翻譯桌面端(官方) </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 = "

        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_())


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2768244/,如需轉載,請註明出處,否則將追究法律責任。

相關文章