我把最终完成的两个API程序放到了我的GitHub上https://github.com/haolexiao/Google-Baidu-Translate-API
最终版,百度的API函数,我又加了两个传入的参数,就是百度官方API调用的时候需要的ID和key,这个需要自己去百度官方获取。
起因
缘起于上一篇文章——一个简易而有趣的爬虫——对草榴帖子的爬取.。
爬完草榴准备再爬另外一个知名论坛的的帖子。结果发现那个论坛上的帖子标题大部分都是日文的,虽然能看个似懂非懂,但是终归不如中文看的舒服。于是在想,能否加入一个在线翻译的功能,帖子标题直接翻译完了之后一块写入文件。
查找资料
因为平时就用Google翻译比较多,所以先查了下Google翻译有没有现成的API,结果发现Google翻译的API居然要钱,于是想着能不能http协议模拟在网页中进行翻译。搜了下果然有相关的资料
小玩意系列:Python调用Google翻译
试了下发现直接运行不行,提示403 Forbidden估计是Google限制了这种方法。
然后在StackOverflow上搜这个问题,发现果然有别人也有这种情况。看到一个答主在好几个问题下面不遗余力的推销自己写的Google Translate的API,是个法国人:
A simple api for google translate
我把它下下来,找到核心代码,试着运行了一下,提示无法建立连接。
另外这个地方再说一点,就是后来我才了解到直接用http模拟网页翻译的方法是违反Google翻译的用户协议的,所以这里Google这个API大家玩玩学学就好,用起来的话还是老老实实的用付费版API吧。
着手解决问题
403错误的问题
对于上面出现的2个问题,就开始尝试解决。
对于403 Forbidden的问题,搜的解决方案都说是通过构造访问的头部,模拟人正常的上网行为来解决【所以上篇爬虫的文章也可以不用selenium,用构造报头的方法来解决这个问题】
于是我找了下我浏览器的UsrAgent,