天天看点

python 通过访问有道词典来实现翻译首先了解第三方urllib

小甲鱼课程,通过requests实现访问并获取数据

  • 首先了解第三方urllib

首先了解第三方urllib

  • urllib是Python自带的标准库,无需安装,直接可以用

    主要提供了以下功能:

    • 网页请求
    • 响应获取
    • 代理和cookie设置
    • 异常处理
    • URL解析
    • (详细用法可以百度了解一下)

因为是跟课程写的,所以可以推荐大家去看一下视频。

b站视频

首先我们要获取访问的网址

> 在百度搜索 ‘有道翻译’
> 然后打开,查看源代码,点击Network,然后在翻译框里随便输入一个翻译内容,便可发现源代码框里有一个translate开头的一个模块点击进去,找到Headers下的
> Request URL:Request URL: http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
> 这个就是我们要的访问网址。
           

如图

python 通过访问有道词典来实现翻译首先了解第三方urllib
接下来再找到data板块,将里面的内容复制下来
           
python 通过访问有道词典来实现翻译首先了解第三方urllib

找到这两部分接下来就可以写代码了。

代码

```python
import urllib.request
import urllib.parse
import json           #导入库

content = input("请输入要翻译的内容 : ")   #读取翻译内容

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'  #将访问网址赋值给url 变量。这里要删除掉‘_o’这一部分要不然可能访问失败


data = {}  #定义一个字典,将data数据存入

data['i'] = content
data['doctype'] = 'json'

# data = urllib.parse.urlencode(data).encode('utf_8')
# response = urllib.request.urlopen(url, data)
# html = response.read().decode('utf-8')
# target = json.loads(html)
# print("result: %s" % (target['translateResult'][0][0]['tgt']))

#后来发现只需要将 ‘i’,‘docype’ 存入就可以了,其他的无所谓。

data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url, data)
html = response.read().decode('utf-8')
target = json.loads(html)
print("翻译的结果为 : %s" % (target['translateResult'][0][0]['tgt']))


           
**接下来就可以尝试一下了。**