最近在学python,觉得这个挺有意思,对于以后学爬虫很有帮助。
实现这个功能需要以下几个步骤:
一、打开有道翻译网页。
我是用谷歌浏览器打开的。
二、打开元素检查。
先打开检查,再输入要翻译的 文字,这样就能看到network选项夹里多了几个东西,找到XHR格式的,然后打开它。
三、寻找URL以及输入的格式。
打开之后主要看以下两部分
上图第一个就是翻译的URL,复制即可。下面这张图很重要,表示我们发送数据的格式,如果不一致的话,网页是不会给我们反馈的。
4、代码如下,需要根据上图信息修改。
import urllib.request
import urllib.parse
import json
def translation():
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data={}
data['i']= content
data['from']= 'AUTO'
data['to']='AUTO'
data['smartresult'] ='dict'
data['client']= 'fanyideskweb'
data['salt']= '16216671697475'
data['sign']= '4b12fe85554d481a2d40331d2b07847f'
data['ts']= '1621667169747'
data['bv']= 'cda1e53e0c0eb8dd4002cefc117fa588'
data['doctype']= 'json'
data['version']= '2.1'
data['keyfrom']= 'fanyi.web'
data['action']= 'FY_BY_REALTlME'
data = urllib.parse.urlencode(data).encode('utf-8')#data信息要和发送的信息格式一致
response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')
target =json.loads(html)
print("翻译结果;%s" % (target['translateResult'][0][0]['tgt']))#[0]的作用是定位‘tgt’在片中的位置
while 1:
content = input("请输入要翻译的内容(输入q退出程序):")
if content=='q':
quit()
else:
translation()
大功告成,觉得不错的可以三连一下,感谢各位!