人民网留言板加密参数(纯算)

==请帮忙点点赞,点个关注,谢谢!!==


====解密代码在最底部====

官网地址:领导留言板-人民网

通过接口爬取,可以解决selenium只能采集到前20页(也就是200条)的问题。

接口虽然不能突破页数限制,但是有其他方式可以获取全部数据。(具体看文章底部代码注释)

按此方式日更只需要请求一次即可全部获取,不需要再繁琐的分类采日更了。

具体是下图的这个参数

一、加密参数分析

1.参数定位

上来就一个冒号大法,很明显和接口中的四个参数都对上了。

直接给他一个断点

2.看看都传了些什么参数给i()方法

多选几个搜索条件请求分析,发现只有t值是在改变的。那其他参数写死就行。结合其他接口看返回的数据分析t值存放的就是地域、领域等这些搜索条件的分类标签(代码注释中有详细解释)。

那么4个参数是什么就搞明白了,那还等什么直接进i()方法看他是个什么东西。

3.i()方法分析

进来后发现就在我们头上

一步一步走,发现在i()方法中写了一个i,这个i值是e、JSON.stringify(t)、c拼接在一起的

(备注:此时i()方法中的  e=最初e,t=最初t,c=最初l,a=最初h)

再往下走,把i这个变量传到了n ()方法中,别等了,直接进去。

4.n()方法分析

n()方法跳转到了这里,继续往里进。

明晃晃的md5,那等什么,直接把传进来的i给md5一下,看看加密后的值一不一样。

ok完成,写代码吧,这加密很简单,直接纯算。

二、加密纯算代码

====解密不易,在文章底部给点个赞+关注吧!有米的大哥给赏点,感谢!!====

import json
from hashlib import md5

urlPath = "/v2/threads/search"  # 可以在方法中写死
# param样例
param = {
    "position": 0,  # 0为地方留言, 1为部委留言
    "keywords": "",  # 关键词
    "fid": 4,  # 地域
    "domainId": None,  # 领域, 部委留言没有这个参数
    "typeId": None,  # 类别, 部委留言没有这个参数
    "timeRange": None,
    "ansChecked": False,
    "stTime": None,
    "sortType": "0",  # sortType: 默认、升序、降序
    "page": 1,  # 页数,最大20
    "rows": 10  # 返回多少条数据,没有上限。最好每页别超1000
                # 每页返回数据量可以调大点(最大尝试过3000,但可能对服务器负载会有点大,不建议调太高)
                # 因为页数限制大量采集在调高返回数据量的基础上还是建议 按 地域、领域、类别 分类采。
}


# 采用四个字段appCode、token、param、urlPath按一定规则处理拼接后采用md5生成signature
def encode(urlPath, param):
    param = str(json.dumps(param, ensure_ascii=False))
    appCode = "PC42ce3bfa4980a9"  # 固定写死
    appCode_md5 = md5(appCode.encode('utf8')).hexdigest()[:16]  # 因为appCode是固定的,所以这个参数就是固定的,但再往里分析会发现,他也是md5加密只不过只取了前16位
    token = ""  # 固定写死
    signature = md5((urlPath + param + appCode_md5 + token).encode('utf8')).hexdigest()
    return signature

====需要22年至今的数据和完整爬虫源代码的私我====

免责声明

本文所提供的信息仅供个人学习和研究之用,不得用于任何商业目的或非法活动。不保证所提供的下载方法或工具完全有效或安全,也不对任何因使用本文内容而导致的损失或损害承担责任。在使用本文提供的方法或工具时,请自行承担风险,并确保您的行为符合相关法律法规的规定。

转载时请注明原文作者和原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MySheep.

赏瓶水钱吧!感谢!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值