一只爬虫带你看世界【3】

6.实战two:有道翻译

  准备工作,打开有道翻译的官网,输入“陪伴是最长情的告白”,点击翻译,则会出现英文的翻译。

  此时在该页面上点击右键,选择查看元素,弹出的菜单栏中选network,再点击页面上的翻译,弹出的信息中选择第一个,在信息右侧会出现header等信息,截图如下:


   


截图反映了服务器与浏览器之间的数据交换。其中Headers信息中,General 中的Request URL是服务器真实地址,Request Method:POST,则是浏览器向服务器发送信息,并成功返回状态码 200,远程服务器地址为:61.135.217.28


Request URL是服务器真实地址:

   


区分是否人工和机器浏览网站信息的依据:Headers 中的 User-Agent 信息:



用户使用浏览器向服务器提交信息采用POST方式,在使用urllib.requst 函数时,提供其参数DATA信息。

    

 其中 i: 为用户信息输入的部分。

----------------------------------------------------------------------------------------------------------------------

实战代码如下:

 

import urllib.request

import urllib.parse

import json

 

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

 

url ='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'    # 实际服务器地址,通过headers查看


# data 部分为headers 中 FromData 中查看

data = {}

data['i'] = content

data['from'] = 'AUTO'

data['to'] = 'AUTO'

data['smartresult'] = 'dict'

data['client'] = 'fanyideskweb'

data['salt'] = '1507902676814'

data['sign'] ='f4bd4b3b948cbc76c913eafdd1853ed8'

data['doctype'] = 'json'

data['version']= '2.1'

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

data['action'] = 'FY_BY_CLICKBUTTION'

data['typoResult'] = 'true'

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

 

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

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

target = json.loads(html)    # 使用到json解析,在文件头引入该json 文件

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


代码结果展示



----------------------------------------------------------------------------------------------------------------------

可能遇到的问题:出现{"errorCode":50}

解决的方案:去除url里面的_o字段,就可以解决问题

即:

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

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

 





 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值