5回答

1收藏

谷歌翻译爬虫---X-Goog-BatchExecute-Bgr 请求头参数获取

问答交流 问答交流 2113 人阅读 | 5 人回复 | 2021-07-03




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
分享到:
回复

使用道具 举报

回答|共 5 个

ludis

发表于 2021-7-16 10:29:25 | 显示全部楼层

我咋debug不出来这块
回复

使用道具 举报

ludis

发表于 2021-7-16 10:29:32 | 显示全部楼层

求分享
回复

使用道具 举报

ludis

发表于 2021-7-16 11:08:57 | 显示全部楼层







这块加密逻辑求分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

niklaus2009

发表于 2021-9-24 14:42:13 | 显示全部楼层

有搞出来的大佬吗,这块F9进去以后就出不来了,找不到加密的逻辑在哪。。。
回复

使用道具 举报

houge666

发表于 2022-3-9 14:53:35 | 显示全部楼层

我自己写的,给你用吧。


def google_translate(text, src='zh-CN', des='en', retries=5):
    try:
        res = requests.post(
            url="https://translate.google.cn/_/TranslateWebserverUi/data/batchexecute?rpcids=MkEWBc&bl=boq_translate-webserver_20211021.09_p0&hl=zh-CN&soc-app=1&soc-platform=1&soc-device=1&rt=c",
            data={
                "f.req": json.dumps([[['MkEWBc', json.dumps([[text, src, des, True], [None]]), None, 'generic']]])}
        )
    except requests.Timeout:
        logging.info(f'Timeout,retry now..')
        if retries > 0:
            google_translate(text, retries - 1)
    except requests.RequestException as err:
        logging.info(f'Translate fail : {err}')
        return None

    else:
        for row in res.text.split('\n'):
            try:
                try:
                    data = eval(
                        eval(row.replace('null', 'None').replace('true', 'True').replace('false', 'False'))[0][2])
                    # 获取原语种
                    if src == 'auto':
                        try:
                            src = data[2]
                        except IndexError:
                            pass
                    if src == 'auto':
                        try:
                            src = data[0][2]
                        except IndexError:
                            pass
                    rult = (' ' if data[1][0][0][3] else '').join([_[0] for _ in data[1][0][0][5]])                  
                    return rult                  
                except IndexError:
                    pass
                except TypeError:
                    pass
            except SyntaxError:
                pass
        else:
            print('未获取正确的翻译结果!')
回复

使用道具 举报