本次实战目标站点:http://fanyi.youdao.com/?keyfrom=fanyi-new.logo ,主要利用HTTP间谍抓包插件分析有道翻译反爬机制,该抓包能帮我们过滤掉一些不需要的常规请求如图片,css等。
**1、**首先分析提交翻译请求后URL的规律。打开chrome的开发者工具,输入翻译内容后点击“翻译”按钮,可以看到服务器返回的数据,如下图所示:

此时我们点击插件,可以看到其只有一个请求结果,相对与chrome的请求结果更加直观快速得分析请求规律。从插件返回的结果中我们可以看到请求的URL为:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule ,请求时还携带了cookies和表单数据,下面我们将其展开:

**2、**经过多次的请求翻译,并且每次翻译后都去查看插件返回的数据,比较每次翻译时发送的表单数据的值可知参数i、salt、sign、bv、ts这些是不同的,其他的数据都是一样的,因此我们需找到这些参数的赋值规律。以salt为关键词我们进行全局搜索,如下图:

搜索结果可知salt在fanyi.min.js文件中,再从该文件中搜索可得到其定义,而且同时我们也得到了其他参数的定义,这里来做个简介:

e:代表的是需要翻译的字符串。
t:代表浏览器的版本号md5值,即User-Agent的md5值。
r:当前时间的时间戳。
salt:参数r加上0-10的随机字符串。
sign:使用的是"fanyideskweb"+e+salt+"p09@Bn{h02_BIEe]$P^nG"的md5值。

知道生成原理后,我们就可以写Python代码,以下是全部代码:

import js2py
import random,time
import hashlibdef set_user_agent():USER_AGENTS = ["Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)","Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)","Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)","Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0","Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5"]user_agent = random.choice(USER_AGENTS)return user_agentjs_str = """ r = "" + (new Date).getTime(), i = r + parseInt(10 * Math.random(), 10);"""
js_text = js2py.EvalJs()
js_text.execute(js_str)def getSalt():
# salt的公式r = "" + ((new Date).getTime() + parseInt(10 * Math.random(), 10))# 方法1:利用js2py模块,获取salt值:#   salt_text = js2py.EvalJs()#   salt_text.execute(js_str)salt = js_text.i# 方法2:将js_str翻译成python代码获取salt值:#   salt = int(time.time()*1000) + random.randint(0, 10)return saltdef getMd5(v):md5 = hashlib.md5()md5.update(v.encode("utf-8"))sign = md5.hexdigest()return signdef getSign(key, salt):sign = "fanyideskweb" + key + str(salt) + "p09@Bn{h02_BIEe]$P^nG"sign = getMd5(sign)return signclass Youdao():def __init__(self):self.headers = {"Accept": "application/json,text/javascript,*/*;q=0.01","Accept-Encoding": "gzip,deflate","Accept-Language": "zh-CN,zh;q=0.9","Connection": "keep-alive","Host": "fanyi.youdao.com","Origin": "http://fanyi.youdao.com","Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",'User-Agent': set_user_agent(),'Referer': 'http://fanyi.youdao.com/','Cookie': 'OUTFOX_SEARCH_USER_ID=-315098820@10.169.0.83; JSESSIONID=aaaBADMLwT0Wj8je4pjKw; OUTFOX_SEARCH_USER_ID_NCOO=1012727192.8548353; YOUDAO_MOBILE_ACCESS_TYPE=0; DICT_UGC=be3af0da19b5c5e6aa4e17bd8d90b28a|; JSESSIONID=abcVeHVPsZKjL9bo6tjKw; user-from=http://www.youdao.com/; from-page=http://www.youdao.com/; ___rl__test__cookies=1550646069714'}self.data = {'i': None,"from": "AUTO","to": "AUTO","smartresult": "dict",'client': 'fanyideskweb','keyfrom': 'fanyi.web',"doctype": "json","version": "2.1","action": "FY_BY_CLICKBUTTION","typoResult": "false","bv":getMd5(set_user_agent()),"ts":js_text.r,'salt': None,'sign': None}self.url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'def translate(self, word):self.data['i'] = wordself.data['salt'] = getSalt()self.data['sign'] =getSign(word,getSalt())res = requests.post(self.url, headers=self.headers, data=self.data)return res.json()['translateResult'][0][0]['tgt']if __name__ == '__main__':youdao = Youdao()while True:word=input('请输入要翻译的内容:')print("翻译结果为:{}".format(youdao.translate(word)))

运行结果如下:

python实战:利用chrome抓包插件HTTP间谍分析有道翻译反爬机制相关推荐

  1. 用Python破解有道翻译反爬虫机制

    破解有道翻译反爬虫机制 web端的有道翻译,在之前是直接可以爬的.也就是说只要获取到了他的接口,你就可以肆无忌惮的使用他的接口进行翻译而不需要支付任何费用.那么自从有道翻译推出他的API服务的时候,就 ...

  2. Python(4) 用Python破解有道翻译反爬虫机制

    web端的有道翻译,在之前是直接可以爬的.也就是说只要获取到了他的接口,你就可以肆无忌惮的使用他的接口进行翻译而不需要支付任何费用.那么自从有道翻译推出他的API服务的时候,就对这个接口做一个反爬虫机 ...

  3. Python破解百度翻译反爬机制---自制翻译器

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的同学 ...

  4. http抓包实战 pdf_实战 Wireshark https 抓包 2, 再抓 Moka 蹭 OurATS 的小尾巴

    在昨天的文章 实战 Wireshark https 抓包,抓住 Moka 蹭 OurATS 的小尾巴 里,我们通过 chromium-browser 的 SSLKEYLOGFILE 环境变量特性,实现 ...

  5. 利用Fiddler抓包调试工具,实现mock数据特殊场景深度测试(二)

    大家好,我是王大力,上一篇文章Fiddler响应拦截数据篡改,实现特殊场景深度测试(一)我们和大家聊了如何利用fiddler抓包工具,设置响应断点,拦截响应,来篡改响应数据,欺骗前端,实现前端想要的展 ...

  6. 【计算机网络】 课程大作业:利用Wireshark抓包并进行分析

    目录 一:任务目的 二:任务内容 三:提交形式及时间 四:步骤 五.感悟 一:任务目的 (1)了解计算机网络TCP/IP的分层实现过程,了解不同层次PDU的逐层封装与解封过程: (2)熟悉网络通信的实 ...

  7. 利用fiddler抓包爬取微信小程序数据

    利用fiddler抓包爬取微信小程序数据 1.背景原理 有些微信小程序无法在PC端进行访问 原因 判断非微信'内嵌浏览器',则禁止访问 解决方法 模拟微信'内嵌浏览器'进行访问,需要获取的数据有:Us ...

  8. 计算机网络抓包设计,计算机网络实验利用wireshark抓包工具抓包

    计算机网络实验利用wireshark抓包工具抓包 计算机网络实验[利用wireshark抓包工具抓包] 一.实验名称 使用网络协议分析仪 Wireshark 二.实验目的 1.掌握安装和配置网络协议分 ...

  9. Python下的网络抓包库

    一直以来对于Python下的网络抓包库很疑惑,搞不清楚pylibpcap.pypcap.pycap这些库之间是什么关系,混沌了很长时间,在网上G了很久慢慢搞清楚了,其实这些都是libpcap的Pyth ...

最新文章

  1. 尼克的任务 dp 洛谷1280
  2. oracle怎么下载安装,Oracle数据库的下载和安装方法
  3. Java多线程之一:进程与线程
  4. 使用JDBCTemplate实现与Spring结合,方法公用
  5. ts获取服务器数据_怎么使用Satruts2实现页面列表数据导出到Excel表格
  6. 为什么我直接在servlet里面直接输出message不乱码,而跳转到web页面就出现乱码,而且存到数据库的也是乱码,我尝试了网上的各种方法,还是不成功。。
  7. 【Servlet】请求转发与重定向
  8. sed 分隔符打印_字符截取:cut,格式化输出:printf,字符截取:awk,文件或命令输出编辑:sed...
  9. CSS3秘笈复习:第十一章
  10. [C++] C/C++结构体的区别
  11. java.lang.IllegalArgumentException: addChild: Child name '/SSHE' is not unique
  12. 不可不知的socket和TCP连接过程
  13. java的维护_天了噜,Java 8 要停止维护了!
  14. 大学生创新创业计划-2019
  15. python等值面追踪_等值线的追踪算法(2)
  16. win7连接远程服务器特别慢,技术员告诉您win7远程桌面连接速度慢的具体解决法子...
  17. 中标麒麟v7.0 yum源报错修改方法
  18. 世上只有妈妈好计算机怎么谈音乐,世上只有妈妈好的音乐教案
  19. 兔聊图片二维码logo个性制作
  20. 世界杯“引爆”东南亚电商狂潮,电商人如何选品和营销?

热门文章

  1. IPC$连接出现1326错误处理
  2. 微信H5页面跳转小程序 - Vue中使用微信开放标签<wx-open-launch-weapp>
  3. 吃一堑长一智!2021最新Java面试真题解析
  4. Go-ecc数字签名详解与代码
  5. Ubuntu系统下载安装WPS并卸载Libreoffice文档编辑软件
  6. 【Java】时间格式化注解
  7. Coding-Party 基于飞桨的农作物智能识别系统病虫害识别
  8. 【3】FSL MRI 脑部图像功能与使用
  9. HTML select标签提交表单
  10. 图灵机杂思(rev#2)