前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!
目录标题
- 前言
- 本次使用知识点:
- 开发环境:
- 模块使用:
- 思路流程:
- 代码展示
- 尾语 💝
本次使用知识点:
-
系统分析网页结构
-
动态数据抓包演示
-
json数据解析
-
JS解密
开发环境:
-
Python 3.8
-
Pycharm
-
Nodejs
模块使用:
-
requests >>> 主要用来发 送 HTTP 请求,属于内置,无需安装
-
execjs >>> 用来调用 js 的,第三方模块 需要安装
-
pprint >>> 用来格式化输出的模块,属于内置,无需安装
第三方模块安装:
win + R 输入cmd 输入安装命令 或 在pycharm中点击Terminal(终端) 输入安装命令
如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:
pip install -i https://pypi.doubanio.com/simple/ requests
思路流程:
-
确定目标需求: 用python代码做一个简单的翻译程序
当我们输入一个汉字/词 它给我们返回相对应的英文内容
请求 http://fanyi.**/translate_o?smartresult=dict&smartresult=rule
它会给我们返回一个json数据 这个json数据里面包含了翻译结果
post 请求 需要我们提交一个data参数 才能获取数据
代码展示
import requests
import execjs
import pprint
# 用python代码调用JS代码
while True:
word = input('请输入你要翻译的内容(输入0即退出): ')
if word == '0':
break
with open('有道翻译.js', mode='r', encoding='utf-8') as f:
js_code = f.read()
js_data = execjs.compile(js_code)
# 调用JS函数
sign = js_data.call('youdao', word)
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
headers = {
'Cookie': 'OUTFOX_SEARCH_USER_ID=-549589964@10.169.0.84; OUTFOX_SEARCH_USER_ID_NCOO=1098831190.3128111; JSESSIONID=aaaZq8sPFNGe-8DrHMZHx; ___rl__test__cookies=1616847597740',
'Host': 'fanyi.youdao.com',
'Origin': 'http://fanyi.youdao.com',
'Referer': 'http://fanyi.youdao.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36',
}
源码/解答/教程+V:pytho8987
data = {
'i': word,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': sign['salt'],
'sign': sign['sign'],
'lts': sign['ts'],
'bv': sign['bv'],
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTlME',
}
response = requests.post(url=url, data=data, headers=headers)
# 数据解析 字典取值
translate_result = response.json()['translateResult'][0][0]['tgt']
print('翻译的内容结果是: ', translate_result)
尾语 💝
要成功,先发疯,下定决心往前冲!
学习是需要长期坚持的,一步一个脚印地走向未来!
未来的你一定会感谢今天学习的你。
—— 心灵鸡汤
本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝