python——爬虫的一个实例(有道翻译)

利用爬虫来翻译文本

1.F12查看翻译网页的元素(elements)
在这里插入图片描述
2.点开Network查看Method方法中post方法前面的文件中preview是否为自己刚提交的文本
在这里插入图片描述
下图为我提交的翻译文本例子:
在这里插入图片描述
Headers简介:

General
Resquest URL: 请求访问地址
Resquest Method:传值方式
Status Code: 状态(标志是否传值成功
Remote Address: 服务器地址
Request Headers(客户端信息)
User-Agent:用户访问信息(浏览器信息,系统信息等)客户端常常使用这个信息来判断是否为非人类在访问
Form Data
i (显示的为提交的翻译文本)

实现代码

import urllib.request
import urllib.parse
import json 
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
#网易翻译有发爬虫机制所以要做一些调整去掉url中的_o
#原地址 url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
print('按quit退出!')
while True:
    string = input('请如输入你要翻译的内容:')
    if string == 'quit':
        break
    data = {}
    data['i'] = string
    data['from']= 'AUTO' 
    data['to']= 'AUTO' 
    data['smartresult']= 'dict'
    data['client']= 'fanyideskweb'
    data['salt']= '15736230452499'
    data['sign']= '2334c19fb0460ae09b873c2c1c9a7a98'
    data['ts']='1573623045249'
    data['bv']= '75551116684a442e8625ebfc9e5af1ba'
    data['doctype']= 'json' 
    data['version']= '2.1'
    data['keyfrom']= 'fanyi.web'
    data['action']= 'FY_BY_CLICKBUTTION'
    '''
    data是来自于网页中Form Data中的数据,它其实为一个字典
    data如果为空则默认用get传值否则用post来传值
    data传入的格式要为application/x-www-from-urlencoded 形式,我们可以使用 urllib.parse.urlencode()方法转换为该格式
    '''
    data = urllib.parse.urlencode(data).encode('utf-8')
    response = urllib.request.urlopen(url,data)
    html = response.read().decode('utf-8')
    target = json.loads(html)['translateResult'][0][0]['tgt']
    print(target)

(注意点已经写在了代码中不在赘述)
解释一下json 来自百度词条
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值