python3爬虫有道翻译

编程入门 行业动态 更新时间:2024-10-24 09:30:21

python3<a href=https://www.elefans.com/category/jswz/34/1770264.html style=爬虫有道翻译"/>

python3爬虫有道翻译

在实现这一功能时遇到了一些困难,由于按照《零基础入门python》中的代码无法实现翻译,会爆出“您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: ”这种神奇的错误。无奈百度,在一篇不错的博主上找到一个优化的代码,可以实现。分享一下链接

1 from urllib importrequest2 from urllib importparse3 importjson4

5 if __name__ == "__main__":6 #对应上图的Request URL

7 request_url = "=dict&smartresult=rule"

8 #创建Form Data字典,存储上图中的Form Data

9 Form_Data ={}10 Form_Data['i'] = 'love'

11 Form_Data['from'] = 'AUTO'

12 Form_Data['to'] = 'AUTO'

13 Form_Data['smartresult'] = 'dict'

14 Form_Data['client'] = 'fanyideskweb'

15 Form_Data['doctype'] = 'json'

16 Form_Data['version'] = '2.1'

17 Form_Data['keyfrom'] = 'fanyi.web'

18 Form_Data['action'] = 'FY_BY_REALTIME'

19 Form_Data['typoResult'] = 'false'

20 #使用urlencode方法转换标准格式

21 data = parse.urlencode(Form_Data).encode('utf-8')22 #传递Request对象和转换完格式的数据

23 response =request.urlopen(request_url, data)24 #读取信息并解码

25 html = response.read().decode('utf-8')26 #使用json

27 translate_results =json.loads(html)28 #找到翻译结果

29 translate_result = translate_results["translateResult"][0][0]['tgt']30 #打印翻译结果

31 print("翻译的结果是 %s" % translate_result)

View Code

还有一个我在上面报错的链接里的API看到了一个版本,写了一个对应匹配参数要求的爬虫。

(原demo无法正常运行。。我是少了个包所以就自己改写了)

对了,使用这个方法需要在有道智云注册一个账号(收费的,不过第一次注册送100)然后需要进入我的应用里创个新应用,里面的接入方式选API,就能得到一个账号密码了

这是我修改demo后的代码

#-*- coding: utf-8 -*-

importsysimportuuidimporturllib.requestimporturllib.parseimporthashlibimporttimeimportjson

YOUDAO_URL= ''APP_KEY= 'ID用自己的吧2333'APP_SECRET= '密码当然也是'

defencrypt(signStr):

hash_algorithm=hashlib.sha256()

hash_algorithm.update(signStr.encode('utf-8'))returnhash_algorithm.hexdigest()deftruncate(q):if q isNone:returnNone

size=len(q)return q if size <= 20 else q[0:10] + str(size) + q[size - 10:size]defdo_request(data):

headers= {'Content-Type': 'application/x-www-form-urlencoded'}return urllib.request.Request(YOUDAO_URL, data=data, headers=headers)

q= input("请输入查询的单词:\n")

data={}

data['from'] = 'EN'data['to'] = 'zh-CHS'data['signType'] = 'v3'curtime=str(int(time.time()))

data['curtime'] =curtime

salt=str(uuid.uuid1())

signStr= APP_KEY + truncate(q) + salt + curtime +APP_SECRET

sign=encrypt(signStr)

data['appKey'] =APP_KEY

data['q'] =q

data['salt'] =salt

data['sign'] =sign

data= urllib.parse.urlencode(data).encode('utf-8')

req=do_request(data)

response=urllib.request.urlopen(req)

html=response.read().decode()

target=json.loads(html)print(target['web'][0]['value'])#上面的输出可以自己定义,输出target看自己需求输出吧

更多推荐

python3爬虫有道翻译

本文发布于:2024-03-09 07:51:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1724368.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!