1.0 版本

#首先贴上结果,自动检测语言

对于这种需要提交数据的爬虫,最主要的就是获取form data了,具体的获取方式请参考

如何通过Chrome获取post表单数据

这里需要注意的是,同一个网站的表单的属性名可能会有变化,自己使用的时候需要注意,否则可能会导致结果不对,或者乱码什么的。

下面是基于python3.6.1版本的程序

# -*- coding: UTF-8 -*-
from urllib import request
from urllib import parse
import jsonif __name__ == "__main__":#Request URLRequest_URL = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'#创建Form_Data字典,存储得到的Form DataForm_Data = {}Form_Data['type'] = 'AUTO'Form_Data['from'] = 'AUTO' #自动检测语言Form_Data['to'] = 'AUTO'Form_Data['smartresult'] = 'dict'Form_Data['doctype'] = 'json'Form_Data['version'] = '2.1'Form_Data['keyfrom'] = 'fanyi.web'Form_Data['action'] = 'FY_BY_REALTIME'#使用urlencode方法转换标准格式while 1:Form_Data['i'] = input("请输入要翻译的内容:")if Form_Data['i'].lower()=='exit':print('已退出')exit(0)data = parse.urlencode(Form_Data).encode('utf-8')#传递Request对象和转换完格式的数据response = request.urlopen(Request_URL,data)#读取信息并解码html = response.read().decode('utf-8')#使用JSONtranslate_results = json.loads(html)#找到翻译结果translate_results = translate_results['translateResult'][0][0]['tgt']#打印翻译信息print("翻译的结果是:%s" % translate_results)

2.0 版本 2018-3-29更新

在昨天的基础上,加入了金山和百度的翻译,以及对三者的结果进行比较的程序

先贴上结果

然后贴上代码(注意,现在这个2.0版本中,金山和有道的正常使用,可以输入任何语言。百度的目前只能支持英译中,百度的是真的难搞,有兴趣的童鞋可以给你几个参考链接:百度翻译最新接口破解    百度翻译通用API(第二个链接是百度官方的,但是版本比较旧,和现在的API区别比较大,而且从爬取的难度上来说,百度要比其他两个更难许多),在百度的官方参考代码中,使用的是python2版本的,我这里自己写了python3版本的)

# -*- coding: UTF-8 -*-
from urllib import request
from urllib import parse
import json
import random
import _md5
import hashlibdef process(Request_URL,Form_Data):# 使用urlencode方法转换标准格式data = parse.urlencode(Form_Data).encode('utf-8')# 传递Request对象和转换完格式的数据response = request.urlopen(Request_URL, data)# 读取信息并解码html = response.read().decode('utf-8')# 使用JSONtranslate_results = json.loads(html)return  translate_resultsdef Jinshan(onlyone=1,word=None):Request_URL = 'http://fy.iciba.com/ajax.php?a=fy'#创建Form_Data字典,存储Form DataForm_Data = {'f' : 'auto','t' : 'auto'}if onlyone==0:Form_Data['w']=wordtranslate_results = process(Request_URL, Form_Data)# 找到翻译结果if 'out' in translate_results['content']:translate_results = translate_results['content']['out']else:translate_results = translate_results['content']['word_mean']# 打印翻译信息print("金山翻译结果是:%s" % translate_results)returnprint('正在使用金山词霸\n')while 1:Form_Data['w'] = input("请输入要翻译的内容:")if Form_Data['w'].lower()=='exit':print('已退出金山词霸')returntranslate_results=process(Request_URL,Form_Data)#找到翻译结果if 'out' in translate_results['content']:translate_results = translate_results['content']['out']else:translate_results = translate_results['content']['word_mean']#打印翻译信息print("金山翻译结果:%s" % translate_results)def Youdao(onlyone=1,word=None):#对应上图的Request URLRequest_URL = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'#创建Form_Data字典,存储Form DataForm_Data = {'type' : 'AUTO','from' : 'AUTO','to'   : 'AUTO','smartresult':'dict','doctype': 'json','version': '2.1','keyfrom': 'fanyi.web','action' : 'FY_BY_REALTIME'}if onlyone==0:Form_Data['i']=wordtranslate_results = process(Request_URL, Form_Data)# 找到翻译结果result = translate_results['translateResult'][0][0]['tgt']# 打印翻译信息print("有道翻译结果:%s" % result)returnprint('正在使用有道翻译\n')while 1:Form_Data['i'] = input("请输入要翻译的内容:")if Form_Data['i'].lower()=='exit':print('已退出有道翻译')returntranslate_results = process(Request_URL, Form_Data)#找到翻译结果result = translate_results['translateResult'][0][0]['tgt']# 打印翻译信息print("有道翻译结果:%s" % result)def Baidu(onlyone=1,word=None):Request_URL = 'https://fanyi-api.baidu.com/api/trans/vip/translate'# 创建Form_Data字典,存储Form DataForm_Data = {'from' : 'auto','to'   : 'zh','appid':'20151113000005349','salt': random.randint(32768, 65536).__str__(),}secretKey = 'osubCEzlGjzvw8qdQc41'if onlyone==0:Form_Data['q']=wordsign = Form_Data['appid'] + Form_Data['q'] + Form_Data['salt'] + secretKeyForm_Data['sign'] = hashlib.md5(sign.encode(encoding='gb2312')).hexdigest()translate_results = process(Request_URL, Form_Data)# 找到翻译结果result = translate_results['trans_result'][0]['dst']# 打印翻译信息print("百度翻译结果:%s" % result)returnprint('正在使用百度翻译\n')while 1:Form_Data['q'] = input("请输入要翻译的内容:")if Form_Data['q'].lower()=='exit':print('已退出百度翻译')returnsign =Form_Data['appid'] + Form_Data['q'] + Form_Data['salt'] + secretKeyForm_Data['sign'] = hashlib.md5(sign.encode(encoding='gb2312')).hexdigest()translate_results = process(Request_URL, Form_Data)#找到翻译结果print(translate_results)result = translate_results['trans_result'][0]['dst']# 打印翻译信息print("百度翻译结果:%s" % result)def all():while 1:word=input("请输入要翻译的内容:")if word=='exit':print('已退出')returnYoudao(0,word)Jinshan(0,word)Baidu(0,word)if __name__ == '__main__':soft=input("请选择要使用的翻译软件:1.有道翻译 2.金山词霸 3.百度翻译 4.都看一下呗")if soft=='1':Youdao()elif soft=='2':Jinshan()elif soft == '3':Baidu()elif soft=='4':all()else:print('hhh,您这输的小的没设置的选项啊')print("白白,欢迎下次再来使用")

Python网络爬虫(2)- 爬虫翻译程序-含有道、金山、百度翻译相关推荐

  1. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  2. python爬虫高级教程,JS逆向之百度翻译

    环境 python版本号 系统 游览器 python 3.7.2 win7 google chrome 关于本文 本文将会通过爬虫的方式实现简单的百度翻译.本文中的代码只供学习,不允许作为于商务作用. ...

  3. 编写程序实现通过有道或百度翻译url对用户输入数据进行翻译_8亿用户AI有道:超强神经网络翻译技术大解密...

    [新智元导读]数据的作用在人工智能发展道路上愈发被重视.7月27日,在广州举行的GMIC大会上,网易有道技术总监林会杰表示目前AI+教育还在初级阶段,对于这一行业而言,得数据者得先机.这家拥有国内最大 ...

  4. 编写程序实现通过有道或百度翻译url对用户输入数据进行翻译_8亿用户AI有道,超强神经网络翻译技术大解密...

    [新智元导读]数据的作用在人工智能发展道路上愈发被重视.7月27日,在广州举行的GMIC大会上,网易有道技术总监林会杰表示目前AI+教育还在初级阶段,对于这一行业而言,得数据者得先机.这家拥有国内最大 ...

  5. python语言翻译-教你用Python抓取百度翻译

    最近一直在一个平台学习Python,所以分享下课程里面抓取百度翻译的操作.原理其实也很简单,就是将浏览器请求的操作我们用python进行模拟,从而获取到返回的数据,我们将返回的数据进行提取,从而得到我 ...

  6. 教你用Python抓取百度翻译

    最近一直在一个平台学习Python,所以分享下课程里面抓取百度翻译的操作.原理其实也很简单,就是将浏览器请求的操作我们用python进行模拟,从而获取到返回的数据,我们将返回的数据进行提取,从而得到我 ...

  7. python调用百度翻译-Python 调用百度翻译API

    由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...

  8. python3爬虫有道翻译_一篇文章教会你利用Python网络爬虫获取有道翻译手机版的翻译接口...

    [一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. ![image](ht ...

  9. python如何爬有道翻译_如何利用Python网络爬虫来获取有道翻译翻译接口--手机版的哦!...

    [一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. ​ image [二. ...

  10. IT宅男利用Python网络爬虫获取有道翻译手机版翻译接口

    [一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. [二.项目目标] 多国 ...

最新文章

  1. 二维码Data Matrix的解码实现(zxing-cpp)
  2. hdu 1806线段树 区间合并
  3. numpy 转置_Numpy基础:数组转置和轴对换
  4. 纯ASP结合VML生成完美图-柱图
  5. oracle test 卡死,oracle11g plsql调试存储过程卡死的处理技巧
  6. 在ChemDraw中一键隐藏所有氢原子的方法
  7. Python —— CPU vs. GPU
  8. mysql64位机安装和配置_MySQL学习第二天 安装和配置mysql winx64
  9. c语言程序如何防止盗用,如何用C语言程序盗取QQ密码
  10. 共享换电:车企筑垒,宁王拆墙
  11. UEFI开发与调试---edk2中的Module
  12. C#学习之 调用 AForge.NET Framework 启动摄像头
  13. windows下安装启动rocketmq可视化界面
  14. 计算机图形学 (二) 图元的属性 - 概念、轮廓
  15. JavaPoet动态生成代码,高薪程序员必会
  16. About云公益4月名额抽取
  17. 设计一个算法求象棋这些棋子各代表哪些数字
  18. YII2日常所用的教程
  19. python 基于搜索引擎实现文章查重
  20. ajax中xAxis的赋值

热门文章

  1. 《红楼梦》的作者真的是曹雪芹吗?
  2. vue 处理跨域问题及解决方法小结
  3. 毕业设计php做个人网站,个人网站的设计与实现
  4. 2017年总结与展望
  5. java 蜂鸣器_蜂鸣器驱动
  6. 解决服务器内存被pc微信占满,微信占内存的解决方案终于出现了
  7. 为什么-关于因果关系的新科学 | 01 因果关系之梯
  8. Pearson 相关系数
  9. R语言使用cor.test函数检验两个数值向量之间的相关性系数是否具有统计显著性、对相关性系数进行显著性检验、基于pearson相关性检验
  10. 设置电脑屏保全屏显示时间,酷!