【Rollo的Python之路】Python 爬虫系统学习 (三)
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()