通过爬虫实现百度在线翻译
使用post请求:
我们一般使用requests中的post请求会基于以下情况:
1.模仿浏览器进行登录注册
2.需要传输大文本数据时(post请求不限制数据长度)使用requests模块实现爬虫:requests.post(url=post_url,data=data)
寻找url与js数据:![](/assets/blank.gif)
一、 实现英文–>中文的翻译:
# coding=utf-8
import requestsheaders = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"}
data = {"from":"en","to":"zh","query":"hola","transtype":"translang","simple_means_flag":"3","sign":"372549.85108","token":"e89a8f037aac1b51a86cbc82356949d"
}
post_url = "http://fanyi.baidu.com/v2transapi"r = requests.post(post_url,data=data,headers=headers)
print(r.content.decode())
此时,执行代码会返回:
{“error”:997,”from”:”en”,……}
分析检查界面中的headers会发现,sign这个值会随着输入内容不同改变(也就是js动态生成的.),因此我们考虑将网页版改为手机版浏览。
手机版代码与电脑版代码区别仅为url的不同,下面是手机版的爬虫代码。
# coding=utf-8
import requests
import json
import sysquery_string = sys.argv[1]headers = {"User-Agent":"Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Mobile Safari/537.36"}post_data = {"query":query_string,"from":"zh","to":"en",
}post_url = "http://fanyi.baidu.com/basetrans"r = requests.post(post_url,data=post_data,headers=headers)
# print(r.content.decode())
dict_ret = json.loads(r.content.decode())
ret = dict_ret["trans"][0]["dst"]
print("result is :",ret)
二、实现自动检测语言的功能:
# coding=utf-8
import requests
import json
import sysclass BaiduFanyi:def __init__(self,trans_str):self.trans_str = trans_strself.lang_detect_url = "http://fanyi.baidu.com/langdetect"self.trans_url = "http://fanyi.baidu.com/basetrans"self.headers = {"User-Agent":"Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Mobile Safari/537.36"}def parse_url(self,url,data): #发送post请求,获取响应response = requests.post(url,data=data,headers=self.headers)return json.loads(response.content.decode())def get_ret(self,dict_response):#提取翻译的结果ret = dict_response["trans"][0]["dst"]print("result is :",ret)def run(self):#实现主要逻辑#1.获取语言类型#1.1 准备post的url地址,post_datalang_detect_data = {"query":self.trans_str}#1.2 发送post请求,获取响应lang = self.parse_url(self.lang_detect_url,lang_detect_data)["lan"]#1.3 提取语言类型#2.准备post的数据trans_data = {"query":self.trans_str,"from":"zh","to":"en"} if lang== "zh" else \{"query":self.trans_str,"from":"en","to":"zh"}#3.发送请求,获取响应dict_response = self.parse_url(self.trans_url,trans_data)#4.提取翻译的结果self.get_ret(dict_response)if __name__ == '__main__':trans_str= sys.argv[1]baidu_fanyi = BaiduFanyi(trans_str)baidu_fanyi.run()
通过爬虫实现百度在线翻译相关推荐
- potplayer插件_Potplayer 百度在线翻译插件
昨天下了一部电影只有英文字幕,找不到中文字幕,于是想着用Potplayer的在线翻译功能.开始试了下Google在线翻译,结果翻译了一会就没了,后来查询得知这翻译API也要钱的,不过可以注册GCP试用 ...
- html在线翻译,HTML实现调用百度在线翻译API
最近在帮忙写网站,等有时间之后再仔细的研究后台. Translate Translate $("#Click").click(function (){ var contents = ...
- 百度api翻译html,百度在线翻译API (使用实例)
[实例简介] 在http://api.fanyi.baidu.com/ 注册API使用的ID就可以使用的翻译工具,简化翻译过程,不用每次都打开网页. [实例截图]需要字自己注册APIID才行哦 [核心 ...
- HTML实现调用百度在线翻译API
最近在帮忙写网站,等有时间之后再仔细的研究后台. <!doctype html> <html lang="en"> <head><meta ...
- 乱码翻译器在线翻译_GAL党的福音——开源生肉翻译器MisakaTranslator正式版发布...
**注:本文的创作已征得软件原作者"技术宅の果冻(hanmin0822)"的许可 **软件作者 @果冻 已出现在评论区,欢迎交流** 关于本软件的文字使用教程正在制作中,后续将会在 ...
- 线上线下英文词典工具、在线翻译全搜罗
线上线下英文词典工具.在线翻译全搜罗 <script language="javascript" type="text/javascript">va ...
- python百度翻译爬虫_Python爬虫教程-05-python爬虫实现百度翻译
使用python爬虫实现百度翻译功能 python爬虫实现百度翻译: python解释器[模拟浏览器],发送[post请求],传入待[翻译的内容]作为参数,获取[百度翻译的结果] 通过开发者工具,获取 ...
- python在线翻译小程序_Python爬虫学习之翻译小程序
本次博客分享的内容为基于有道在线翻译实现一个实时翻译小程序,本次任务是参考小甲鱼的书<零基础入门学习Python>完成的,书中代码对于当前的有道词典并不适用,使用后无法实现翻译功能,在网上 ...
- Python3网络爬虫教程8——有道在线翻译项目(JS加密)
上接: Python3网络爬虫教程7--SSL数字证书 https://blog.csdn.net/u011318077/article/details/86538116 6. js加密(有道在线翻译 ...
最新文章
- 手把手玩转协同编辑(1):AST (Address Space Transformation)地址空间转换算法 基本介绍...
- 国内油价今日将迎九连跌 出租车燃油费望调整
- LeetCode 112. 路径总和 、113. 路径总和 II 思考分析
- 干货 | 深度学习的可解释性研究(一):让模型「说人话」
- 3.卷1(套接字联网API)---套接字编程简介
- 小卷积核的特征图与卷积参数变化不大,计算量变化明显
- 32、至少列举8个常用模块都有那些?
- 计算机二级资料汇总,包含多个题库
- 写软件详细设计方案总结
- 兔子-蓝牙 bluetooth (四)OPP文件传输
- 0人报名!清华转专业20+学科无人问津引热议,网友:一切为了吃饭
- C# Winform窗体切换与关闭
- LRC歌词制作LRC歌词制作
- Vba实现按选定类型排序标记
- 经典网络结构 (八):轻量化网络 (SqueezeNet, MobileNet, ShuffleNet)
- RPM软件包和YUM软件仓库的实例
- Linux rpm -ivm,Linux常见命令
- 稻城亚丁,从你的全世界路过
- 关于人工智能,你知道怎么学吗
- 海康iv4200支持多少_年度最佳理财产品的亲弟弟——海康威视C2000L256G测评