爬虫JS渗透百度翻译

543次阅读
没有评论

目的:通过js渗透实现本地翻译 即将百度翻译的工作在本地实现

首先获取百度翻译的链接:https://fanyi.baidu.com/ 将要翻译的语种写在上面

爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
对比翻译不同的语种 可能是sign以及token值发生改变 所以接下来的目的就是找到sign值以及token值
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
将找到的js放入本地中 注意:这里需要pip install execjs 当然使用execjs小樱桃在node.js下才能运行 需要下载node.js
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
此时执行程序后发现
爬虫JS渗透百度翻译
即需要去判断i是什么东西
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
然后发现i是一个全局变量 只需要在js里面定义var i=null就行
爬虫JS渗透百度翻译
执行程序完 发现又报错 n未定义
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
爬虫JS渗透百度翻译
找到token值
爬虫JS渗透百度翻译
在network中全局搜索
爬虫JS渗透百度翻译
最终获得sign值以及token值

翻译代码如下

import execjs import re import json import time import requests

with open(r'D:\爬虫高级班\JS渗透\百度翻译渗透\baidu.js','r',encoding='utf8') as f: JS = f.read() #print(JS)

JsFunc = execjs.compile(JS) result = JsFunc.call('e','恭喜发财',) print(result)

sess = requests.session()

sess.headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36' } for i in range(2): url = 'https://fanyi.baidu.com/' r = sess.get(url) #rint(r.text) #window.gtk = '320305.131321201'

#token的问题 会变 需要请求两次

gtks = re.search(r"window.gtk = '(.+?)';", r.text) #print(gtks.group(1)) gtk = gtks.group(1)

#要翻译的字符串 SourceString = '告白气球' #找到sign sign = JsFunc.call('e',SourceString,gtk) #print(sign) #找token tokens = re.search(r"token: '(.+?)'", r.text) token = tokens.group(1) #print(token)

data = { 'from': 'zh', 'to': 'en', 'query': SourceString,

'simple_means_flag': '3', 'sign': sign, 'token': token, } url = 'https://fanyi.baidu.com/v2transapi' response = sess.post(url,data=data) #print(response.json()) result_data = response.json()['trans_result']['data'][0]['dst'] print('英文:',result_data)

爬虫JS渗透百度翻译

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-24发表,共计1594字。
新手QQ群:570568346,欢迎进群讨论 Python51学习