编程本身与年龄无关。无论你是14、15岁,还是40、50岁,如果你热爱它,愿意继续投入其中,你一定会有所收获。本文由编程课堂“小小”读者投稿(互学组1的同学应该对作者的名字不陌生)。看着他不断产出新的代码和技术文章,不禁感叹“后辈真牛逼”。这是一个爬虫基础分析和操作的开发案例,分享给大家。当我需要在我的电脑上翻译一个词时,我这样做:打开浏览器=>打开百度翻译=>输入一个词=>得到翻译但是有时候,当我在命令行环境中编写代码时,我懒得去做切换到浏览器并等待页面加载。于是我想,能不能用万能的python做一个命令行下的翻译工具呢?去做就对了!在网上搜索了一些资料,经过一段时间的操作,终于搞明白了。看看最终效果吧:在这个工具中,我使用了百度、有道和谷歌的翻译(可选)。开发思路其中,获取有道翻译和百度翻译的原理是类似的。这里我们选择百度翻译玩一会:首先打开百度翻译:http://fanyi.baidu.com接下来右击勾选选择网络中的XHR(向服务器发送数据请求)。然后我们在输入框里输入save这个词,一会儿可以看到里面多了几个sug标签,点击打开:可以看到这个sug请求里面有我们想要的数据。点击进去,RequestURL就是我们需要请求的URL,在RequestMethod中,我们可以看到是一个POST方法,也就是提交表单:移到最后,我们看到提交的表单参数:在FormData中,我们看到form是一个字典:{'kw':'save'},这里save是我们自己输入的,也就是我们要查询的词,所以我们用requests.post来模拟这个请求:#URL和formurl='https://fanyi.baidu.com/sug'form_data={'kw':word}#post方法请求网站response=requests.post(url,data=Form_data,headersheaders=headers)我们可以试试把返回的东西打印出来,你会发现返回的是json格式的,所以需要引入内置库json来解析:content=json.loads(response.text)#loadedintoadictionary在打印出来的文本中json格式,我们发现翻译结果在'data'['v']中(刚才我们在图片中也看到了),然后提取返回:result=content['data'][0]['v']#获取翻译结果returnresultThiscomp让提交表单实现百度翻译。这里用到的是一些常用的爬虫分析和操作。有道翻译基本大同小异,不再赘述。具体操作请参考文末给出的完整代码。接下来,让我们看看独特的谷歌翻译,它真的很复杂。谷歌翻译有api,但是需要钱。。。我不想花钱。。。网上有大佬给出了解决方案(这里简单看一下原理):操作方式类似toBaiduTranslate,我们看到这里多了一个请求,下面是我们想要的翻译结果:我们回到之前的RequestURL,发现可以直接复制之前的。q是我们需要翻译的词,但tk参数是一个棘手的参数。范围。我的代码中使用的解决方案来自互联网。我按照谷歌翻译页面提供的函数,用JavaScript计算了这个参数(我怀疑他只是拿了前端源码,没有仔细对比)。那么如何在python中执行JavaScript代码,我们可以使用库pyexecjs(注意这个库的导入名称是execjs)。这部分的源码在Py4Js类中。特别说明一下,因为谷歌翻译不能直接使用,所以我把它设为可选,默认不会调用。如何使用这个项目我已经发布到pypi了,你可以通过pip命令安装如下:pipinstallquicktranslate使用起来也很简单(加-g增加谷歌翻译结果):trans-t你要翻译的东西的例子:$trans-t你好================================================================================================================================================================================$trans-thello-g===========================youdaotranslateresult:hellobaidutranslateresult:[nǐhǎo]howdoyoudo;howareyou;hello;googletranslateresult:Hellothere=========================本例完整代码:https://github.com/pynickle/a...pip安装命令:pipinstallquicktranslate
