Python爬取百度翻译的类方法写法:
import requests
import json
import sys
class BaiduFanyi:
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 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"}
def parse_url(self,url,data):
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('result is:',ret)
def run(self):
#1.获取语言类型
#1.1 准备post的url地址,post_data
lang_detect_data = {'query':'trans_str'}
#1.2 发送post请求,获取响应
lang = self.parse_url(self.lang_detect_url,lang_detect_data)['lan']
#1.3 提取语言类型
#2.准备post的数据
trans_data = {'query':'trans_str','from':'zh','to':'en'} if lang == 'zh' else
{'query': 'trans_str', 'from': 'en', 'to': 'zh'}
#3.发送请求,获取响应
dict_resposne = self.parse_url(self.trans_str,trans_data)
#4.提取翻译结果
if __name__ == '__main__':
trans_str = sys.argv[1]
baidu_fanyi = BaiduFanyi()
baidu_fanyi.run()