对于爬虫新手来说,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加密相关推荐

  1. Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略

    Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略 目录 双下划线介绍 1.关于双下划线的函数或方法或属性 双下划线介绍 1.关于双下划线的函数或方法或属性 __name_ ...

  2. linux python3.8源码安装_linux 下从源码安装 Python——小白踩坑记

    实验室服务器使用的系统为 Ubuntu 16.04,自带的 python 版本为 Python 2.7.12 和 Python 3.5.2,命令行下使用$ python命令来启动 python 时默认 ...

  3. 同一个电脑可安装多个python版本吗_Linux下如何安装多个Python版本

    原标题:Linux下如何安装多个Python版本 导读服务器上的Python版本太老了,需要安装一个新的Python版本,才能跑我的代码.因为环境的需要,但是又不能卸载老的版本,所以安装一个新的,使用 ...

  4. atom运行python,atom运行python_Win10环境下Atom安装和运行Python的方法

    本文介绍了在Windows10下安装Atom和运行Python的教程.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有帮助. 相关推荐:atom教程 首先,下载Atom 1.官网:Atom官网 ...

  5. linux中python编译器的配置_linux下配置python3详解

    一:安装依赖环境 1.1:首先安装gcc编译器,gcc有些系统版本已经默认安装,通过  gcc --version  查看,没安装的先安装gcc,yum -y install gcc 1.2:输入命令 ...

  6. linux python自动补全_Linux下在python命令行中自动补全代码(py2、3,centos、ubuntu)...

    每次只在shell中测试少量代码,纯手打也有点麻烦 安装ipython也可以实现这个功能,不过破机子有时候反映会稍微卡顿,比较麻烦 1.不管有没有这个文件,直接打开这个文件 vi ~/.pystart ...

  7. linux下python安装opencv库_Linux下怎么配置python和opencv

    匿名用户 1级 2017-06-20 回答 以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python支 ...

  8. linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...

    本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...

  9. linux下python开发环境搭建_linux下python开发环境之二——安装Eclipse+PyDev

    Eclipse是由java开发的,所以要想让Eclipse跑起来就得安装jdk,在命令行里输入javac就能查看本机是否已经安装好了jdk了. 1.安装jdk 先从oracle官网上下载jdk,放到/ ...

最新文章

  1. oracle四大语言_Oracle数据库之四大语言
  2. 在Vim中有没有一种方法可以在不将文本放入寄存器的情况下删除?
  3. Zookeeper选举机制测试
  4. Verilog | HDL LCD显示(代码类)
  5. ansible register 用法
  6. mysql路由器配置文件_如何安装并配置mysql 5.7.13解压缩版?
  7. Laravel 5.3 windows环境安装
  8. 超好用的SVN使用教程!!不看血亏!!
  9. tcping要安装什么工具linux,Linux下的TCP测试工具——TCPING安装简明教程
  10. 为什么要玩FLTK(Fast Light Tool Kit)
  11. cad上样条曲线上的点太多了_CAD如何将样条曲线转换成多段线
  12. 修复Critical dependency: the request of a dependency is an expression警告
  13. 你这么努力,为何还如此焦虑?
  14. vue qrcodejs2生成二维码实现手机APP扫码进行web网页登录
  15. 三分钟读懂客户端证书
  16. 朱西产:智能网联汽车与未来出行变革
  17. C语言教程-main函数
  18. 基于python的相机标定(采用圆形标定板图片)
  19. 20162330 2017-2018-1《程序设计与数据结构》第二周学习总结
  20. “Windows 找不到文件...”,怎么处理?

热门文章

  1. glTF格式模型导出方式
  2. vue2中watch的使用
  3. 正运动控制器编程出现错误后,修改后,错误还在。
  4. HBase 性能与可用性在滴滴的探索与实践
  5. 字符串转成可计算的数学表达式
  6. spring aop自定义切面打印入参和出参,以及切面获取注解的字段值.
  7. 华为stk_Aloo计算机在哪里,华为STK-AL00是什么型号
  8. Windows 批量添加删除路由资源性能优化
  9. 来客推电商|小程序+h5+app商城|含分销拼团砍价等多种引流插件|前后代码开源
  10. 装修项目细节工程队实时监督签到系统有哪些