用Python抓取百度翻译内容并打造自己的翻译脚本!

英文不好一直是我的一个短板,尤其是在学习代码的阶段,经常需要查询各种错误,很是苦逼,一直就想自己做个翻译的脚本,省去打开网页的时间,但是查询之后发现网上的教程都是百度翻译改版之前的爬虫,不得已只好自己上手了!

目标:制作自己的翻译脚本

url: http://fanyi.baidu.com/basetrans

前期准备:pycharm、python3.6、库:requests、json

思路:

  • 首先找到百度翻译的网页,抓到以下内容:该包内有输出文字的判断,比如输入中文自动翻译为英文,则返回“en”,反之则返回“cn”。
  • 构造post访问url的data数据,用到3个参数:"query"、"from"、"to",from和to参数就是你输入的内容和返回的内容的语种,我们上一步已经获取到相关的参数了,所以用个判断分别返回to参数即可

Lan就是抓包后返回的内容,直接提取出来

  • 然后注意,因为是访问移动端的url,所以用到的UA不能是电脑的ua了,需要自行查找手机端的ua,这里提供给大家一个:

{"User-Agent":"Mozilla/5.0(Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/63.0.3239.84 Mobile Safari/537.36"}

  • 将需要翻译的内容提交后,网站返回的数据是json格式的内容,当翻译的文字大于1个时,会有每个关键字的翻译,这里也可以抓取下。

比如输入“python学习交流群: 542110741”后返回内容:

Josn内容如下:

{'errno': 0, 'from': 'zh', 'to': 'en','trans': [{'dst': 'Python learning communication group: 542110741','prefixWrap': 0, 'src': 'python学习交流群: 542110741', 'relation': [], 'result': [[0, 'Python learningcommunication group: 542110741', ['0|32'], [], ['0|32'], ['0|46']]]}], 'dict':[], 'keywords': [{'means': ['巨蛇,大蟒'], 'word': 'python'}, {'means': ['study', 'learn', 'emulate','learning'], 'word': '学习'}, {'means': ['exchange', 'interflow', 'interchange','alternating', 'AC (alternating current)', 'communion'], 'word': '交流'}]}

我们可以分别抓取'trans'和'keywords'的值,我们所需要的内容,就在这两个值里。

好了,直接上代码和运行结果

好了,内容到这里就完了~如果对大家有帮助,就关注下呗

原文发布于微信公众号 - 云飞学python(P542110741)

原文发表时间:2018-03-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏即时通讯技术

开源轻量级IM框架MobileIMSDK v3.0发布!

本次更新为主版本更新,更新内容包含了简化了消息发送目标的方式、支持Web版与APP版互通、优化了Protocal协议结构等主要升级,详细更新内容见“版本更新说明...

2861
来自专栏华仔的技术笔记

生产环境小程序登录出现502

用的是腾讯wafer的解决方案: 生产环境部署说明 https://cloud.tencent.com/document/product/619/11689

1521
来自专栏FreeBuf

潜伏7年的Linux内核漏洞CVE-2017-2636曝光,可本地提权

又一个古老的Linux内核漏洞被曝光!这次的漏洞可以追溯到2009年,影响的linux发行版包括Red Hat、Debian、Fedora、OpenSUSE和U...

3018
来自专栏Kevin-ZhangCG

前后端分离原理

  前后端分离已成为互联网项目开发的业界标准使用方式,通过Nginx+Tomcat的方式(也可以中间加一个Node.js)有效的进行解耦,并且前后端分离会为以后...

5.4K5
来自专栏张善友的专栏

深入浅出事件流处理NEsper(一)

    对实时信息分析和处理,常常需要客户应用程序的开发相应功能。一般地,这些功能需要提供以下的处理流程,分析获取的数据,筛选数据,提取出有用的信息,然后将其通...

2389
来自专栏Young Dreamer

webpack4:连奏中的进化

3315
来自专栏EAWorld

解密普元大文件传输核心技术

提起文件数据的传输功能,文件如何传输,如何保障传输的可靠性,不会出现数据错乱等问题是客户最为关心的问题。普元作为国内领先的软件基础平台与解决方案提供商,在这篇文...

3826
来自专栏杨建荣的学习笔记

海量数据迁移之数据加载流程(r4笔记第88天)

在之前的博文中分享了关于数据抽取流程的一些思路,整体来说,数据的抽取是辅助,数据的加载是关键。加载的过程中每一步需要格外关注,稍有偏差就可能造成数据的损坏或者丢...

3553
来自专栏逸鹏说道

大公司都有哪些开源项目之新浪

新浪:WeiBo https://github.com/weibocom 1.分布式缓存服务器 memcachedb memcachedb是 一个由新浪网的开发...

38610
来自专栏Java架构师进阶

java架构师之用Redis轻松实现秒杀系统

曾经被问过好多次怎样实现秒杀系统的问题。昨天又在CSDN架构师微信群被问到了。因此这里把我设想的实现秒杀系统的价格设计分享出来。供大家参考。

1K2

扫码关注云+社区

领取腾讯云代金券