1.JS混淆加密

我们之前爬取有道翻译的翻译内容时,我们通过fiddler抓取url地址时,我们发现如果我们直接将相关参数传入,会报错。只是因为,某些参数是变化的。因此,我们需要解读JS文件,取得相关参数的生成算法,利用python生成参数,再传入。

我们继续以有道翻译为例讲解如何获取相关参数的生成算法,并利用python生成参数。

首先,我们使用fiddler抓取翻译所需要的全部参数,

data = {"i": keyword,  # 翻译内容"from": "AUTO",  # 源语言,固定值"to": "AUTO",  # 目标语言,固定值"smartresult": "dict",  # 智能结果,固定值"client": "fanyideskweb",  # 客户端,固定值"salt": res['salt'],  # 加密用的盐,这个值变化"sign": res['sign'],  # 签名字符串,这个值变化"ts": res['ts'],  # 毫秒时间戳,这个值变化"bv": res['bv'],  # 未知值,这个值变化"doctype": "json",  # 文档类型,固定值"version": "2.1",  # 版本,固定值"keyfrom": "fanyi.web",  # 键的来源,固定值"action": "FY_BY_CLICKBUTTION",  # 操作动作,固定值
}

通过分析参数我们发现需要获取salt、sign、ts和bv参数的算法。

我们进入有道翻译页面,右键“检查”-“网络”找到所有的js文件,依次进入并搜索salt、sign。

经过搜索,我们发现fanyi.js文件中有salt和sign,将fanyi.js下载并格式化。在格式化后的js文件中搜索salt,我们可以找到这样一个函数,

function (e, t) {var n = e("./jquery-1.7");  // e为要翻译的内容e("./utils");e("./md5");var r = function (e) {var t = n.md5(navigator.appVersion),  // t参数为经过md5加密后的浏览器版本r = "" + (new Date).getTime(),  // r参数为时间戳i = r + parseInt(10 * Math.random(), 10);  // i参数为时间戳加0-10之间随机整数return {ts: r,  // ts参数为rbv: t,  // bv参数为tsalt: i,  // salt参数为i// sign参数为md5加密sign: n.md5("fanyideskweb" + e + i + "mmbP%A-r6U3Nw(n]BjuEU")}};t.recordUpdate = function (e) {var t = e.i,i = r(t);n.ajax({type: "POST",contentType: "application/x-www-form-urlencoded; charset=UTF-8",url: "/bettertranslation",data: {i: e.i,client: "fanyideskweb",salt: i.salt,sign: i.sign,ts: i.ts,bv: i.bv,tgt: e.tgt,modifiedTgt: e.modifiedTgt,from: e.from,to: e.to},success: function (e) {},error: function (e) {}})},

经过分析js代码,我们可以获取salt、sign、ts和bv参数的算法。我们下面使用python生成这些参数,

import hashlib
import time
import randomdef handlerSignSalt(e):navigator_appVersion = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.56"t = hashlib.md5(navigator_appVersion.encode('utf-8')).hexdigest()r = str(int(time.time() * 1000))  # 当前毫秒的时间戳i = r + str(random.randint(1, 10))  # 盐值return {'ts': r,'bv': t,'salt': i,'sign': hashlib.md5(str("fanyideskweb" + e + i + "mmbP%A-r6U3Nw(n]BjuEU").encode('utf-8')).hexdigest(),}

这样,我们就获取到了所有的参数,下面对有道翻译进行爬取,完整代码如下,

import requests
import hashlib
import time
import random# e为要翻译的内容
def handlerSignSalt(e):navigator_appVersion = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.56"t = hashlib.md5(navigator_appVersion.encode('utf-8')).hexdigest()r = str(int(time.time() * 1000))  # 当前毫秒的时间戳i = r + str(random.randint(1, 10))  # 盐值return {'ts': r,'bv': t,'salt': i,'sign': hashlib.md5(str("fanyideskweb" + e + i + "mmbP%A-r6U3Nw(n]BjuEU").encode('utf-8')).hexdigest(),}headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.56","Referer": "http://fanyi.youdao.com/",  # 来源是否正确"Cookie": "OUTFOX_SEARCH_USER_ID=-411992782@10.108.160.17; JSESSIONID=aaai8_KoEvdXw_a3gTCnx; OUTFOX_SEARCH_USER_ID_NCOO=678424169.4655154; ___rl__test__cookies=1594990510295",
}url = "http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"keyword = input("请输入要查询的单词:")res = handlerSignSalt(keyword)data = {"i": keyword,  # 翻译内容"from": "AUTO",  # 源语言"to": "AUTO",  # 目标语言"smartresult": "dict",  # 智能结果,固定值"client": "fanyideskweb",  # 客户端,固定值"salt": res['salt'],  # 加密用的盐,这个值变化"sign": res['sign'],  # 签名字符串,这个值变化"ts": res['ts'],  # 毫秒时间戳,这个值变化"bv": res['bv'],  # 未知值,这个值变化"doctype": "json",  # 文档类型"version": "2.1",  # 版本,固定值"keyfrom": "fanyi.web",  # 键的来源,固定值"action": "FY_BY_CLICKBUTTION",  # 操作动作,固定值
}response = requests.post(url, data=data, headers=headers)dic = response.json()
print(dic['translateResult'][0][0]['tgt'])

2.字体反爬

有些网站会通过给关键字自定义字体,然后使用字体code名替换内容来使爬网站的人爬取无效字符,进而阻止一部分人爬取网站。例如,我们打开实习僧网站的其中一页,查看代码。我们看到其中的数字无法直接读取。

为了解决这个问题,我们需要对字体进行解析。

考虑网页渲染性能,通常把自定义的字体编码成base64,因此,我们可以在网页源代码中中查找@font-face获取编码再用python进行解码然后保存到本地,

import base64
from fontTools.ttLib import TTFontheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.56",
}fontFace = "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"# 解码base64字体文件
font_bytes = base64.b64decode(fontFace)# 保存到本地文件
with open("shixiseng.ttf", "wb") as fp:fp.write(font_bytes)

之后,将字体文件转成xml,需要安装fontTools库,

pip install fontTools

字体文件转成xml,

from fontTools.ttLib import TTFontbaseFont = TTFont("shixiseng.ttf")
baseFont.saveXML('shixiseng.xml')  # 将字体文件保存为xml文件

打开xml文件,我们可以看到有字体的cmap和glyf。其中,cmap中存放的是code和name之间的关系,glyf中存放的是字体形状和name的关系。

code是显示在网页中的代码,网站开发者可能会通过修改code来干扰我们爬取。但是字体最终的形状是不变的,我们可以通过分析字体,得出每个字体形状对应的文字,然后保存到一个字典中。以后再请求网页的时候,就进行反向解析,先获取字体的形状,再通过字体形状反向获取代号所对应的具体文字内容。

代码如下,

import requests
import base64
from fontTools.ttLib import TTFont
import re
import ioheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.56",
}fontFace = "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"# 解码base64字体文件
font_bytes = base64.b64decode(fontFace)# 将字体文件保存本地
with open("shixiseng.ttf", "wb") as fp:fp.write(font_bytes)# 获取形状对象
baseFont = TTFont('shixiseng.ttf')
baseGlyf = baseFont['glyf']# 定义内容和字体形状的映射关系
baseFontMap = {0: baseGlyf['uni30'],1: baseGlyf['uni31'],2: baseGlyf['uni32'],3: baseGlyf['uni33'],4: baseGlyf['uni34'],5: baseGlyf['uni35'],6: baseGlyf['uni36'],7: baseGlyf['uni37'],8: baseGlyf['uni38'],9: baseGlyf['uni39'],
}# 爬取网页
url = "https://www.shixiseng.com/intern/inn_t2sefv2wegpw"
resp = requests.get(url, headers=headers)
text = resp.text# 获取当前页面的字体文件
result = re.search(r'font-family:myFont; src: url\("data:application/octet-stream;base64,(.+?)"\)', text)  # 使用正则表达式获取字体编码
font_face = result.group(1)
b = base64.b64decode(font_face)
currentFont = TTFont(io.BytesIO(b))  # 当前页面的字体
currentGlyf = currentFont['glyf']  # 当前字体的所有形状# 获取code和name的关系
codeNameMap = currentFont.getBestCmap()
for code, name in codeNameMap.items():# 获取name和形状的关系currentShape = currentGlyf[name]# 循环内容和形状的字典for number, shape in baseFontMap.items():if shape == currentShape:# 构建网页中的codewebcode = str(hex(code)).replace('0', '&#', 1)# 将网页中的code换成内容text = re.sub(webcode, str(number), text)

python爬虫之JS混淆加密、字体反爬相关推荐

  1. python爬虫处理js混淆加密_python爬虫之破解javascript-obfuscator的混淆加密

    接上一篇有关前端加密达到反爬的文章,是不是觉得用了javascript-obfuscator 就很安全了,那还真不一定啊,还是那句,反爬与反反爬一直在斗争,没有谁能绝对的压制另一方,只有使用者技术的高 ...

  2. python爬虫处理js混淆加密_Python爬虫—破解JS加密的Cookie

    專 欄 ❈Jerry,Python中文社区专栏作者. blog:https://my.oschina.net/jhao104/blog github:https://github.com/jhao10 ...

  3. 【JS 逆向百例】网洛者反爬练习平台第一题:JS 混淆加密,反 Hook 操作

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 写在前面 逆向目标 绕过无限 debugger Hook 参数 逆向参数 PyCharm 本地联调 完整代码 J ...

  4. Python爬虫第二课 Selenium介绍和反爬技术

    selenium的介绍 知识点: 了解 selenium的工作原理 了解 selenium以及chromedriver的安装 掌握 标签对象click点击以及send_keys输入 1. seleni ...

  5. 前端电子表数字字体_爬虫:如何优雅应对字体反爬

    目录 THE BEGIN 一 什么是字体反爬 二 如何解密 1.人工解密 2.工具解密 三 建立映射关系 四 解密 THE BEGIN 网页数据爬取可以简单分为三步:抓取页面,分析页面,存储数据.其中 ...

  6. Python爬虫进阶之起点中文网字体反扒保姆级教程!!!

    文章目录 1.网页查看 2.网页爬取代码 3.字体反扒研究 4.完整代码 本次字体反扒实验的网站是起点中文网 GlidedSky字体反扒详解 建议先看完本章 1.网页查看

  7. 爬虫:汽车之家字体反爬

    1.我的目的 汽车之家对某些字体进行了反爬虫操作,直接获取是一堆乱码,这次要做的是对这些乱码进行转化,转化为我们想要的符号\汉字 2.前提知识 首先得了解一下字体反爬虫是什么意思: 当前css可以指定 ...

  8. python爬虫实战经典案例,突破反爬!爬取短视频!

    今天在爬取某梨短视频时,发现前端代码跟之前都不一样了.加入了很多的反爬措施.在此特意记录一下! 先来看一下最终执行结果: 爬虫重要的不是写代码,而是分析!分析它的网页请求! 爬虫的基本过程一般如下: ...

  9. python爬虫--破解js加密:kankan登录破解

    这一系列文章旨在解决python 爬虫过程中遇到的各种反爬,从简单到复制,是个进阶的过程.如果对你有帮助,欢迎关注. 今天要破解的网站是天天看看(http://www.kankan.com/)的登录, ...

  10. 爬虫入门到放弃系列07:js混淆、eval加密、字体加密三大反爬技术

    前言 如果再说IP请求次数检测.验证码这种最常见的反爬虫技术,可能大家听得耳朵都出茧子了.当然,也有的同学写了了几天的爬虫,觉得爬虫太简单.没有啥挑战性.所以特地找了三个有一定难度的网站,希望可以有兴 ...

最新文章

  1. 关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》
  2. android如何查看分区信息,android如何查看分区信息
  3. 【pmcaff】苏杰:产品经理对技术做这些,就完蛋了
  4. 如何判断软件架构的好与坏
  5. 一个简单的状态机设计
  6. java string对象,java中String对象
  7. 文本分析用GUI界面显示
  8. 解决ubuntu克隆github上的项目速度很慢的问题
  9. OC5028B 内置MOS开关降压型LED恒流驱动器
  10. 计算机酷炫桌面,电脑桌面还能这么酷炫?!打破次元壁的桌面管理软件
  11. android 写字板_微软正在Windows 10上的写字板中测试广告
  12. mysql admin账号密码忘记_使用mysqladmin命令修改Mysql密码与忘记密码
  13. 【微信小程序】用户授权以及判断登录是否过期的方法
  14. 面试官:设计模式是什么?
  15. Macbook删除苹果系统,装单系统win10系统
  16. javaweb+移动端 富文本
  17. tableau-去掉ABC方法
  18. 腾讯地图经纬度解析出地址
  19. Prolific USB-to-Serial Comm Port在win8.1下
  20. 计算机应用基础模板一,计算机应用基础试卷模板(一)

热门文章

  1. 网站建设基本流程,要注意什么?
  2. 感觉中国程序员前景一片灰暗,是这样吗?Android开发工程师为你答疑解惑
  3. 人工智能——特征工程思维导图
  4. windows无法连接到打印机,打印处理器不存在
  5. python千位分隔符_31 python中format方法:字段宽度、精度和千位分隔符 符号、对齐和用0填充...
  6. matlab小波变换、离散小波变换函数使用
  7. python入门指南by许半仙-《江火欲燃山》《这题超纲了》《Python入门指南》
  8. android仿ios更新方式,Android中仿IOS提示框的实现方法
  9. 畅捷支付显示连接服务器失败,畅捷支付POS机常见错误码解决方法!
  10. Logstash详解之——input模块