谷歌翻译爬虫---X-Goog-BatchExecute-Bgr 请求头参数获取
问答交流
2182 人阅读
|
5 人回复
|
2021-07-03
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
|
|
|
ludis
发表于 2021-7-16 10:29:25
|
显示全部楼层
|
|
|
|
|
|
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('未获取正确的翻译结果!') |
|
|
|
|
|