刚学爬虫,写了一个简单的语言翻译的程序,大佬们就别喷小弟了!代码有点乱,大家将就看吧。。。
效果展示:
拿必应翻译做例子(实现起来简单。。。)
1.找到我们需要的获取的内容
2.经过观察和搜索我们发现我们需要的内容都在这两个东西里面
3.拿出来他们的url,和user-agent 为我们所用!
4.接着是post请求时发送的data数据,即我们要翻译的句子
5.处理一些细节
- 有时候我们发现它并会给我们提示相关的表达即tlookupw开头的请求回来的数据内容是{“statusCode”:“400”},这里不是请求失败,而是返回的json数据内容为{“statusCode”:“400”}
程序代码:
import requests
import json
# 建立一个可选语言字典
language = {
"ar": "阿拉伯语",
"de": "德语",
"ru": "俄语",
"fr": "法语",
"ja": "日语",
"th": "泰语",
"en": "英语",
"ko": "韩语",
}
while True:
print("ar:阿拉伯语 # de:德语 # ru:俄语 # fr:法语 # ja:日语 # th:泰语 # en:英语 # ko:韩语 #quit:退出")
print("选择翻译成的语言:")
langu = input()
if langu == "quit":
break
if langu in language:
while True:
print("提示 : 可输入 reselect 重新选择")
res = input("请输入你要翻译的词或句子: ")
if res == 'reselect':
break
if res == 'q':
break
#post请求地址
post_url = "https://cn.bing.com/ttranslatev3?isVertical=1&&IG=F3ACF2C4651E4F368D7F5CBDB5D7A4D6&IID=translator.5032.10"
post = "https://cn.bing.com/tlookupv3?isVertical=1&&IG=CA5CCE85095F421783D4F0EF68E15038&IID=translator.5028.4"
#请求头
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"
}
#post请求数据
post_data = {
"fromLang": "auto-detect",
"text": res,
"to": langu
}
#发送请求并接受回复
response = requests.post(post_url, headers=headers, data=post_data)
#将json格式数据转化为字典
trans = json.loads(response.content.decode())
data = {
"from": trans[0]["detectedLanguage"]["language"],
"to": langu,
"text": res
}
tlookup = requests.post(post, headers=headers, data = data)
transs = json.loads(tlookup.content.decode())
#通过观察transs,选出我们需要的内容输出
print(trans[0]['translations'][0]['text'],end='\n\n')
#处理一些tlookup 数据为 {"statusCode":"400"}的 请求
if "statusCode" not in transs:
#判断是否有其他表达有就输出
if len(transs[0]["translations"])!=0:
print("其他表达"+transs[0]["normalizedSource"]+"的方式")
for i in transs[0]["translations"]:
s = i["normalizedTarget"]+" "
for k in i["backTranslations"]:
s=s+k["normalizedText"]+","
print(s)
else :
print("没有对应的翻译语言,请重新输入!")