进阶的爬虫3——百度翻译进阶版(中英文自动识别翻译)

首先第一步开始准备工作

# coding=utf-8
import requests

class Fanyi:
    def __init__(self):
        pass
    def run(self):
        pass

if __name__ == '__main__':
    pass

第二步梳理业务逻辑

  • # 1.获取语言类型
    # 1.1准备post的url地址
    # 1.2发送post请求获取响应
    # 1.3提取语言类型
  • # 2.准备post的数据
  • # 3.发送请求,获取响应
  • # 4.提取翻译的结果
# coding=utf-8
import requests

class Fanyi ():
    def __init__(self):
        pass
    def parse_url(self):#发送post请求,获取响应
        pass
    def get_ret(self):#提取翻译的结果
        pass
    def run(self):
        pass
        # 1.获取语言类型
            # 1.1准备post的url地址
            # 1.2发送post请求获取响应
            # 1.3提取语言类型
        # 2.准备post的数据
        # 3.发送请求,获取响应
        # 4.提取翻译的结果


if __name__ == '__main__':
    pass

第三步,设置初始化语言识别的url
翻译返回的url
模拟请求头headers
准备post的url地址

# coding=utf-8
import requests

class Fanyi ():
    def __init__(self,trans_str):
        self.trans_str = trans_str
        self.lang_detect_url = "https://fanyi.baidu.com/langdetect"
        self.trans_url = "https://fanyi.baidu.com/basetrans"
        self.headers = {"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"}

    def parse_url(self):#发送post请求,获取响应
        pass
    def get_ret(self):#提取翻译的结果
        pass
    def run(self):
        # 1.获取语言类型
            # 1.1准备post的url地址
        lang_detect_data = {"query":self.trans_str}
            # 1.2发送post请求获取响应
            # 1.3提取语言类型
        # 2.准备post的数据
        # 3.发送请求,获取响应
        # 4.提取翻译的结果


if __name__ == '__main__':
    pass

准备post的数据

# coding=utf-8
import requests
import json

class Fanyi ():
    def __init__(self,trans_str):
        self.trans_str = trans_str
        self.lang_detect_url = "https://fanyi.baidu.com/langdetect"
        self.trans_url = "https://fanyi.baidu.com/basetrans"
        self.headers = {"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"}

    def parse_url(self,url,data):#发送post请求,获取响应
        response = requests.post(url,data=data,headers=self.headers)
        return json.loads(response.content.decode())

    def get_ret(self,dict_response):#提取翻译的结果
        ret = dict_response["trans"][0]["dst"]
        print("翻译结果为:",ret)

    def run(self):
        # 1.获取语言类型
            # 1.1准备post的url地址
        lang_detect_data = {"query":self.trans_str}
            # 1.2发送post请求获取响应
        lan = self.parse_url(self.lang_detect_url,lang_detect_data)["lan"]
            # 1.3提取语言类型

        # 2.准备post的数据
        trans_data = {"query":self.trans_str,"from":"zh","to":"en"}if lan == "zh" \
            else {"query":self.trans_str,"from":"en","to":"zh"}
        # 3.发送请求,获取响应
        # 4.提取翻译的结果


if __name__ == '__main__':
    pass

发送请求获取响应

# coding=utf-8
import requests
import json
import sys

class Fanyi ():
    def __init__(self,trans_str):
        self.trans_str = trans_str
        self.lang_detect_url = "https://fanyi.baidu.com/langdetect"
        self.trans_url = "https://fanyi.baidu.com/basetrans"
        self.headers = {"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"}


    def parse_url(self,url,data):#发送post请求,获取响应
        response = requests.post(url,data=data,headers=self.headers)
        return json.loads(response.content.decode())


    def get_ret(self,dict_response):#提取翻译的结果
        ret = dict_response["trans"][0]["dst"]
        print("翻译结果为:",ret)


    def run(self):
        # 1.获取语言类型
            # 1.1准备post的url地址
        lang_detect_data = {"query":self.trans_str}
            # 1.2发送post请求获取响应
        lan = self.parse_url(self.lang_detect_url,lang_detect_data)["lan"]
            # 1.3提取语言类型

        # 2.准备post的数据
        trans_data = {"query":self.trans_str,"from":"zh","to":"en"}if lan == "zh" \
            else {"query":self.trans_str,"from":"en","to":"zh"}
        # 3.发送请求,获取响应
        dict_response = self.parse_url(self.trans_url,trans_data)
        # 4.提取翻译的结果
        self.get_ret(dict_response)


if __name__ == '__main__':
    trans_str= sys.argv[1]
    baidu_fanyi = Fanyi(trans_str)
    baidu_fanyi.run()

运行
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值