js逆向分析-有道翻译

本文探讨了如何解决JS加密带来的数据抓取难题,聚焦于有道翻译接口的加密参数解析。通过分析请求头和JS调试,揭示了使用MD5加密的方法,详细介绍了参数的构造过程,并提供了完整代码示例。
摘要由CSDN通过智能技术生成

js加密一直是困扰数据抓取的难题,但总有办法,总结下经验一起学习

有道翻译接口初探

url地址:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
通过分析请求头可以看到使用的post请求
在这里插入图片描述

请求是通过异步往服务器发送数据
主要有以下参数,一群看不懂的东西不用说肯定是加密信息

i: dog
from: AUTO
to: AUTO
smartresult: dict
client: fanyideskweb
salt: 16141702512290
sign: bbbabc9b638ff98c30e191f980ace7b2
lts: 1614170251229
bv: 4abf2733c66fbf953861095a23a839a8
doctype: json
version: 2.1
keyfrom: fanyi.web
action: FY_BY_REALTlME

在这里插入图片描述
找一个参数搜索一下是哪里加密的,这里我们用sign这个加密参数
虽然很多但是难不倒我们,找到加密位置
可以看到是用的md5加密方式,不懂可以百度一下
同时其它的加密参数也在这里
在这里插入图片描述
为了弄清楚加密的参数,通过js调试是最有效的方式
我们打断电调试结果如下,一目了然

在这里插入图片描述

ts:是系统时间戳
salt:时间戳+数字
bv:User-Agent的MD5加密
sign:一串字符加密

通过分析了解加密方式
就可以用代码构造自己加密方式

完整代码如下

# -*- coding: utf-8 -*-

import time
import requests
import random, json
from hashlib import md5
import pprint

class Youdao(object):

    def __init__(self, keyword):

        self.url = "http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
        self.headers = {
   
            'Accept'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值