不了解原理的可以参考之前的两篇文章,本文只做接口更新
《百度翻译最新接口破解》
《百度接口实例解析》
近期一直未上简书,今天上来发现很多简友留言咨询关于接口使用的问题,很抱歉未能及时一一回复
大家如果有兴趣可以加入QQ群进行交流 >>>加入技术交流群<<<
今天花了些时间看了一下,出问题原因猜测应该是百度翻译的域名加入了强制使用 HTTPS 的跳转,该跳转是采用 301 的方式转向 HTTPS 的地址,一些 POST 数据或请求头部信息可能在该转向过程中丢失,所以会出现大家说的 998 问题。目前几乎可以确认,998 代表参数不全;997 表示数据校验失败
哔哔一堆了,直接看代码
# 请求头数据
header = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
"Cookie": "BAIDUID=4650B0B34048BBAA1E0B909B42F5A564:FG=1; BIDUPSID=4650B0B34048BBAA1E0B909B42F5A564; PSTM=1537177909; BDUSS=w0VmEzUFFWTTh0bld5VWVhNVo5MEEyV2ZKdTk3U2stMGZmWVQ1TTRuSnVkOHBiQVFBQUFBJCQAAAAAAAAAAAEAAAD0GzcNaG9uZ3F1YW4xOTkxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7qoltu6qJbTk; pgv_pvi=6774493184; uc_login_unique=19e6fd48035206a8abe89f98c3fc542a; uc_recom_mark=cmVjb21tYXJrXzYyNDU4NjM%3D; MCITY=-218%3A; cflag=15%3A3; SIGNIN_UC=70a2711cf1d3d9b1a82d2f87d633bd8a02893452711; locale=zh; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1539333192; from_lang_often=%5B%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%2C%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%5D; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; to_lang_often=%5B%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%2C%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%5D; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1539333307",
}
# 请求接口地址
v2transapi = 'https://fanyi.baidu.com/v2transapi?from=%s&to=%s&query=%s' \
'&transtype=translang&simple_means_flag=3&sign=%s&token=%s' % (fromLanguage, toLanguage, urllib.parse.quote(source), sign, token)
首先修改以前提供的代码中的链接地址,所有 http:// 开头的地址都要更换为 https 协议
另外本次代码更新了 User-Agent 和 Cookie,个人感觉不要长时间使用同样的 Cookie,甚至建议由翻译需求的各位,自己采集 Cookie。因为同样的 Cookie 数据,出现大量请求或高频请求的时候,会引起运维人员注意,导致的可能就是开发人员对 Cookie 进行校验,增加接入难度
最后祝大家且翻且珍惜~ 如果不能及时回复请 >>>加入技术交流群<<< 咨询