python如何爬有道翻译_Python爬虫爬有道翻译

python爬取有道翻译

实现原理

操作步骤

注意事项

实现原理

利用urllib包中的request对象模拟浏览器访问有道翻译服务器(发送相同格式的request)。

用urllib包中的parse来将数据转化为相同格式。

得到的相应通过编码之后,以dict形式取出翻译内容。

import urllib.request

import urllib.parse

import json

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'

while True:

content = input('请输入翻译内容:')

data = {}

data['i'] = content

data['from'] = 'AUTO'

data['to'] = 'AUTO'

data['smartresult'] = 'dict'

data['client'] = 'fanyideskweb'

data['salt'] = '15613765644784'

data['sign'] = '5caabbf646f6585277b7cebf45f18244'

data['ts'] = '1561376564478'

data['bv'] = '6074bfcb52fb292f0428cb1dd669cfb8'

data['doctype'] = 'json'

data['version'] = '2.1'

data['keyfrom'] = 'fanyi.web'

data['action'] = 'FY_BY_REALTlME'

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

r = urllib.request.urlopen(url,data)

html = r.read().decode('utf-8')

target = json.loads(html)

print("翻译:%s"%(target['translateResult'][0][0]['tgt']))

print('-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-')

操作步骤

访问翻译页面,在一次翻译后捕捉提交方式为post的头文件,在此头文件中找到requestURL,这个是用来访问的地址。再找到form data,复制到py文件中并封装成dict,通过parse的方法将其变为服务器会接收的格式,通过URLopen方法进行一次访问,接收数据,处理数据。

328f8643a47e8272244dc43ef5a7fc61.png

注意事项

有道翻译已经做了反爬虫处理,需要将url中的_o去除,但是这样就只支持汉译英和外译汉了。汉语到其它语言还没法处理。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值