爬取百度翻译
首先我们打开网页端,通过检查找到翻译的时候是通过v2transapi响应翻译结果的
然后我们查看url和data
通过我们用不同的词对比发现data 里面sign和transtype这两个是不同的,而且sign的不同很有可能是随机数,不太容易找到规律,所以我们尝试用手机端看看有没有区别,有没有可能更好爬取。
我们打开手机端后发现确实手机端并没有那么复杂,也没有什么随机数之类的,所以我们决定在手机端进行操作
具体代码如下:
# coding=utf-8
import requests
import json
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"}
url = "http://fanyi.baidu.com/basetrans"
while True:
home_page = input("请选择需要的功能:1.中文翻译英文 2.英文翻译中文:")
if home_page == '1':
query_sys = input("请输入需要翻译的内容:")
datas = {
"query":query_sys,
"from":"zh",
"to":"en",
}
elif home_page == '2':
query_sys = input("请输入需要翻译的内容:")
datas = {
"query":query_sys,
"from":"en",
"to":"zh",
}
else:
print('由于你的瞎鸡儿输入,系统决定死给你看')
response = requests.post(url,data=datas,headers=headers)
# print(r.content.decode())
dict_ret = json.loads(response.content.decode())
ret = dict_ret["trans"][0]["dst"]
print("翻译结果为 :",ret)