通过爬虫实现百度在线翻译
使用post请求:
我们一般使用requests中的post请求会基于以下情况:
1.模仿浏览器进行登录注册
2.需要传输大文本数据时(post请求不限制数据长度)使用requests模块实现爬虫:requests.post(url=post_url,data=data)
寻找url与js数据:
一、 实现英文–>中文的翻译:
# 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加密(有道在线翻译 ...
最新文章
- php 这样写日志 sleep你会了吗?
- PHP多选题怎么弄,php多选题评分算法求指导解决方法
- 【OS】课设记录总结+进程整理
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1045:收集瓶盖赢大奖
- HTML5本地存储不完全指南
- 計算機二級-java08
- Java 中 final 内存语义
- C/C++编程学习 - 第2周 ③ 反向输出一个三位数
- 7本软书,助你打破职场天花板
- qt的cross comple相关
- 云计算基础(二)—— 虚拟化
- 绘画新手怎么画人物衣服褶皱
- SYS_Oracle Erp的基本知识点(概念)
- synaptics安装
- EasyRecovery最新MacBook版本安装包下载地址
- 我所首席执行主任律师王杰接受《电脑报》记者采访就sp发展发表观点
- Daisy Chains
- 傻瓜式linux下安装Chrome和chromedriver
- javaweb项目图书借阅管理系统设计与实现(有文档+调试视频教程+项目源码).rar
- 服务器是虚拟机好还是单机好,比较VMware和VirtualBox虚拟机的优缺点