使用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()

通过爬虫实现百度在线翻译相关推荐

  1. potplayer插件_Potplayer 百度在线翻译插件

    昨天下了一部电影只有英文字幕,找不到中文字幕,于是想着用Potplayer的在线翻译功能.开始试了下Google在线翻译,结果翻译了一会就没了,后来查询得知这翻译API也要钱的,不过可以注册GCP试用 ...

  2. html在线翻译,HTML实现调用百度在线翻译API

    最近在帮忙写网站,等有时间之后再仔细的研究后台. Translate Translate $("#Click").click(function (){ var contents = ...

  3. 百度api翻译html,百度在线翻译API (使用实例)

    [实例简介] 在http://api.fanyi.baidu.com/ 注册API使用的ID就可以使用的翻译工具,简化翻译过程,不用每次都打开网页. [实例截图]需要字自己注册APIID才行哦 [核心 ...

  4. HTML实现调用百度在线翻译API

    最近在帮忙写网站,等有时间之后再仔细的研究后台. <!doctype html> <html lang="en"> <head><meta ...

  5. 乱码翻译器在线翻译_GAL党的福音——开源生肉翻译器MisakaTranslator正式版发布...

    **注:本文的创作已征得软件原作者"技术宅の果冻(hanmin0822)"的许可 **软件作者 @果冻 已出现在评论区,欢迎交流** 关于本软件的文字使用教程正在制作中,后续将会在 ...

  6. 线上线下英文词典工具、在线翻译全搜罗

    线上线下英文词典工具.在线翻译全搜罗 <script language="javascript" type="text/javascript">va ...

  7. python百度翻译爬虫_Python爬虫教程-05-python爬虫实现百度翻译

    使用python爬虫实现百度翻译功能 python爬虫实现百度翻译: python解释器[模拟浏览器],发送[post请求],传入待[翻译的内容]作为参数,获取[百度翻译的结果] 通过开发者工具,获取 ...

  8. python在线翻译小程序_Python爬虫学习之翻译小程序

    本次博客分享的内容为基于有道在线翻译实现一个实时翻译小程序,本次任务是参考小甲鱼的书<零基础入门学习Python>完成的,书中代码对于当前的有道词典并不适用,使用后无法实现翻译功能,在网上 ...

  9. Python3网络爬虫教程8——有道在线翻译项目(JS加密)

    上接: Python3网络爬虫教程7--SSL数字证书 https://blog.csdn.net/u011318077/article/details/86538116 6. js加密(有道在线翻译 ...

最新文章

  1. php 这样写日志 sleep你会了吗?
  2. PHP多选题怎么弄,php多选题评分算法求指导解决方法
  3. 【OS】课设记录总结+进程整理
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1045:收集瓶盖赢大奖
  5. HTML5本地存储不完全指南
  6. 計算機二級-java08
  7. Java 中 final 内存语义
  8. C/C++编程学习 - 第2周 ③ 反向输出一个三位数
  9. 7本软书,助你打破职场天花板
  10. qt的cross comple相关
  11. 云计算基础(二)—— 虚拟化
  12. 绘画新手怎么画人物衣服褶皱
  13. SYS_Oracle Erp的基本知识点(概念)
  14. synaptics安装
  15. EasyRecovery最新MacBook版本安装包下载地址
  16. 我所首席执行主任律师王杰接受《电脑报》记者采访就sp发展发表观点
  17. Daisy Chains
  18. 傻瓜式linux下安装Chrome和chromedriver
  19. javaweb项目图书借阅管理系统设计与实现(有文档+调试视频教程+项目源码).rar
  20. 服务器是虚拟机好还是单机好,比较VMware和VirtualBox虚拟机的优缺点

热门文章

  1. 机房环境监控的系统概述
  2. 局部色调映射(Local Tone Mapping)
  3. 计算机操作员中级上机,计算机操作员中级上机(范文).doc
  4. 记录一次华为CE6800和华三S6800交换机BFD对接配置
  5. 根据经纬度画多边形(返回各个顶点坐标)
  6. Codeforces765F. Souvenirs
  7. 信息泄露防护案例分享
  8. php快递查询接口,一次接入顺丰、京东、申通、圆通、韵达、中通、天天、百世、邮政、EMS等主流快递公司
  9. Spring Cloud 配置(E.SR5)
  10. 物联网专业课程简介及理解