python有道字典_Linux下自制有道词典 - python 解密有道词典JS加密
对于爬虫新手来说,JS解密是一道过不去的坎,需要不断地练习。
平时在linux下开发,鉴于没有什么好用翻译软件,打开网易也占用系统资源,所以写了个在控制台的翻译软件接口。
使用python爬虫,查看网页的JS加密方法,一步一步地分析,就能够得到最后的加密方法啦。
直接给出代码:
# -*- coding: utf-8 -*-
# website: http://30daydo.com
# @Time : 2019/2/23 19:34
# @File : youdao.py
# 解密有道词典的JS
import hashlib
import random
import requests
import time
def md5_(word):
s = bytes(word, encoding='utf8')
m = hashlib.md5()
m.update(s)
ret = m.hexdigest()
return ret
def get_sign(word, salt):
ret = md5_('fanyideskweb' + word + salt + 'p09@Bn{h02_BIEe]$P^nG')
return ret
def youdao(word):
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
headers = {
'Host': 'fanyi.youdao.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest',
'Referer': 'http://fanyi.youdao.com/',
'Content-Length': '252',
'Cookie': 'YOUDAO_MOBILE_ACCESS_TYPE=1; OUTFOX_SEARCH_USER_ID=1672542763@10.169.0.83; JSESSIONID=aaaWzxpjeDu1gbhopLzKw; ___rl__test__cookies=1550913722828; OUTFOX_SEARCH_USER_ID_NCOO=372126049.6326876',
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
}
ts = str(int(time.time()*1000))
salt=ts+str(random.randint(0,10))
bv = md5_("5.0 (Windows)")
sign= get_sign(word,salt)
post_data = {
'i': word,
'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': salt,
'sign': sign, 'ts': ts, 'bv': bv, 'doctype': 'json', 'version': '2.1',
'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTIME', 'typoResult': 'false'
}
r = requests.post(
url=url,
headers=headers,
data=post_data
)
for item in r.json().get('smartResult',{}).get('entries'):
print(item)
word='student'
youdao(word)
得到结果:
Github:
https://github.com/Rockyzsu/CrawlMan/tree/master/youdao_dictionary
原创文章,转载请注明出处
http://30daydo.com/article/416
python有道字典_Linux下自制有道词典 - python 解密有道词典JS加密相关推荐
- Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略
Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略 目录 双下划线介绍 1.关于双下划线的函数或方法或属性 双下划线介绍 1.关于双下划线的函数或方法或属性 __name_ ...
- linux python3.8源码安装_linux 下从源码安装 Python——小白踩坑记
实验室服务器使用的系统为 Ubuntu 16.04,自带的 python 版本为 Python 2.7.12 和 Python 3.5.2,命令行下使用$ python命令来启动 python 时默认 ...
- 同一个电脑可安装多个python版本吗_Linux下如何安装多个Python版本
原标题:Linux下如何安装多个Python版本 导读服务器上的Python版本太老了,需要安装一个新的Python版本,才能跑我的代码.因为环境的需要,但是又不能卸载老的版本,所以安装一个新的,使用 ...
- atom运行python,atom运行python_Win10环境下Atom安装和运行Python的方法
本文介绍了在Windows10下安装Atom和运行Python的教程.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有帮助. 相关推荐:atom教程 首先,下载Atom 1.官网:Atom官网 ...
- linux中python编译器的配置_linux下配置python3详解
一:安装依赖环境 1.1:首先安装gcc编译器,gcc有些系统版本已经默认安装,通过 gcc --version 查看,没安装的先安装gcc,yum -y install gcc 1.2:输入命令 ...
- linux python自动补全_Linux下在python命令行中自动补全代码(py2、3,centos、ubuntu)...
每次只在shell中测试少量代码,纯手打也有点麻烦 安装ipython也可以实现这个功能,不过破机子有时候反映会稍微卡顿,比较麻烦 1.不管有没有这个文件,直接打开这个文件 vi ~/.pystart ...
- linux下python安装opencv库_Linux下怎么配置python和opencv
匿名用户 1级 2017-06-20 回答 以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python支 ...
- linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...
本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...
- linux下python开发环境搭建_linux下python开发环境之二——安装Eclipse+PyDev
Eclipse是由java开发的,所以要想让Eclipse跑起来就得安装jdk,在命令行里输入javac就能查看本机是否已经安装好了jdk了. 1.安装jdk 先从oracle官网上下载jdk,放到/ ...
最新文章
- oracle四大语言_Oracle数据库之四大语言
- 在Vim中有没有一种方法可以在不将文本放入寄存器的情况下删除?
- Zookeeper选举机制测试
- Verilog | HDL LCD显示(代码类)
- ansible register 用法
- mysql路由器配置文件_如何安装并配置mysql 5.7.13解压缩版?
- Laravel 5.3 windows环境安装
- 超好用的SVN使用教程!!不看血亏!!
- tcping要安装什么工具linux,Linux下的TCP测试工具——TCPING安装简明教程
- 为什么要玩FLTK(Fast Light Tool Kit)
- cad上样条曲线上的点太多了_CAD如何将样条曲线转换成多段线
- 修复Critical dependency: the request of a dependency is an expression警告
- 你这么努力,为何还如此焦虑?
- vue qrcodejs2生成二维码实现手机APP扫码进行web网页登录
- 三分钟读懂客户端证书
- 朱西产:智能网联汽车与未来出行变革
- C语言教程-main函数
- 基于python的相机标定(采用圆形标定板图片)
- 20162330 2017-2018-1《程序设计与数据结构》第二周学习总结
- “Windows 找不到文件...”,怎么处理?