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

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

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

前期准备: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个时,会有每个关键字的翻译,这里也可以抓取下。

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'的值,我们所需要的内容,就在这两个值里。

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

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

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180311A0D9RZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券