当爬虫碰到加密请求参数

3 篇文章 0 订阅
3 篇文章 0 订阅

前言:之前查找一个网站的加密方式找了一个星期。放弃了。过了两天又满血归来,一个小时破解了

注:本篇博客,不会讲解任何加密相关的算法。爬虫破解加密算法,可以完全不懂加密算法,需要的是耐心

先说说最近碰到反爬虫相关的方式吧

1.加密+访问次数限制+每个页面相关信息的条目需要点详情进行二次请求

2.复杂的加密算法进行参数+时间戳+sig值,后台进行 参数+时间限制

3.定时同步cookie+每个界面一个cookie

以上三种加密 

第一种破解方式是 简单的破解方式使用 selenium,或者其他可以执行JS 并且可以存储cookie,手动设置cookie的值,selenium 有个通病 比较慢。

第二种 有点投机取巧了, 找他们的相关的APP,看下APP是不是没有加密或者加密比较薄弱(一般网页加密,app也是加密的但是不试一下怎么知道不成功)

第三种方式,就要挑战实力了。不,是耐力

如果手动去设置破解方式的话,需要打开浏览器的 开发者模式,查看每次的网络请求。

查看网络参数

需要的技能跟工具

技能

稍微的懂JS

工具

1.nodejs(用以快速执行JS,方便调试解密的JS)

2.postman(测试接口)

3.内容比对工具(我用的是SVN,用以比对 自己JS加密的数据跟网页加密数据比对)

4.自己用着顺手的文本编辑器(用以查看网页源码中的JS,查找加密JS类库)

有工具加技能之后,说下一般情况

1,如果是可逆的加密,都会有个秘钥,秘钥一般都是登录的时候返回

在 登录接口返回、登录cookie中、JS类库中、单独接口返回。百分之九十不会超过这四项。

可逆加密拿到秘钥之后,存储起来,打开所有在网页上下载的JS类库,假设加密串的参数名称是sig,在所有的JS类库中搜索sig,找到以后,可以选择,浏览器中打断点跟下这个值到底在哪里产生的,对JS比较熟的话,直接阅读代码,找到产生sig值的方法,自己创建一个JS文件,帖进去,在nodeJS中执行这段JS代码,提示少什么方法,就去查找什么方法,帖进去,直到,自己创建JS类库不在报错,这样的话应该,加密的JS找到了,按照书写规范,加密解密的JS 应该都在一个JS中,然后,拿网页产生的加密后的字符串放进去,进行解密,看下参数拼接的类型。

贴一张图吧






第一张图是JS加密的内容

第二张图,输入的参数是第一张加密的明文


总而言之,所有的加密方式 肯定在JS中藏着,不管是sig加密还是每次请求切换cookie,还是定时的请求本地cookie做校验。一定要有耐心,反向的跟着请求流程走一遍。切勿急躁。

说了不讲加密算法,有时间还是看下加密算法吧。看完加密算法之后,可以大致的猜一下他用的什么加密算法,给自己的破解设定一个方向,可能比盲目的查JS,好一点。




  • 14
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
在进行Python爬虫时遇到加密参数的URL,我们需要获取加密参数的值并解析。首先,我们可以分析URL的结构和加密参数的位置。通常,加密参数会以特定的格式出现在URL中,可能是作为查询参数,也可能是作为路径的一部分。例如,URL可以是类似于 `www.example.com/api/query?param1=value1&param2=value2` 的形式。 我们可以使用Python的网络请求库(如`requests`)向URL发送请求获取网页内容。在发送请求时,我们可以将加密参数的值替换为我们需要的数值。如果加密参数是作为查询参数出现的,我们可以将查询参数加入请求的URL中,如 `http://www.example.com/api/query?param1=value1`。如果加密参数是作为路径的一部分,我们可以将路径中的特定部分替换为我们需要的数值,如 `http://www.example.com/api/query/value1`。 如果加密参数的取值来自于某种加密算法(如MD5、SHA1等),我们需要先了解加密算法的原理,然后根据加密算法的特性进行参数生成。 当我们成功获取到带有正确加密参数的URL后,可以继续使用爬虫框架(如`BeautifulSoup`)或者正则表达式等技术对网页内容进行解析,提取我们所需的信息。 值得注意的是,爬虫过程中需要尊重网站的爬虫规则,遵守相关法律法规。在处理加密参数时,我们应该在合法范围内进行处理,如果网站有明确的反爬虫机制,我们需要避免触发这些机制。此外,我们也要注意避免对服务器造成过大的负担,合理设置爬取频率和请求并发数,以确保爬虫行为的合理性和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值