爬虫百战穿山甲(2):百度翻译爬虫

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('外汇跟单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(

            ' 详细释义请参照 百度翻译 。若本产品使用不方便,请下载 百度翻译桌面端(官方) ')

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


请使用浏览器的分享功能分享到微信等