本帖最后由 codegay 于 2016-8-26 07:21 编辑
我懒得扒网页,所以查了一下,这类服务是有API可以用的。我懒得自己申请了,就用了别人的。
比如金山词霸也是同样有API可以用的。实现同样的功能代码量会很少。- #代码一 只使用python3标准库,需要自己指定decode并把str loads成python对象
- import urllib.request
- import json
-
- apiurl = 'http://fanyi.youdao.com/openapi.do?keyfrom=k772933230&key=1494307&type=data&doctype=json&version=1.1&q={input}'
- #apiurl = 'http://fanyi.youdao.com/openapi.do?keyfrom=mypydict&doctype=json&q={input}&version=1.1&key=27855339&type=data'
- #apiurl = 'http://fanyi.youdao.com/fanyiapi.do?keyfrom=youkulabs&key=158194127&type=data&doctype=json&version=1.1&q={input}'
- #以上三个有道API 是在网上看到的。目前都是可以直接使用的。
- #申请自己的API 以及用法,请看这里 http://fanyi.youdao.com/openapi?path=data-mode
-
- req = urllib.request.urlopen
- raw = req(apiurl.format(input="python")).read()
-
- #print(raw.decode("utf8"))
- #print(type(raw.decode("utf8"))) # => str
-
- result=json.loads(raw.decode("utf8"))
-
- for r in result["basic"]["explains"]:
- print(r)
-
-
- #代码二 使用第三方库 requests ,用起来会感觉很方便,自动会根据网页头解码并且把json转成python对象。
- import requests
-
- txt = requests.get(apiurl.format(input="driver")).json()
-
- for r in txt["basic"]["explains"]:
- print(r)
-
- """
- #输出结果:
- n. 巨蟒;大蟒
- n. (法)皮东(人名)
- n. 驾驶员;驱动程序;起子;传动器
- n. (Driver)人名;(德)德里弗;(英)德赖弗
- """
复制代码
|