猿人学_第15题

在这里插入图片描述
进入开发者工具
在这里插入图片描述
下面的请求为真实的数据请求

请求方式: GET
参数:m: 16759391|832956713|832956708
---------page : 1

进入ajax调用点
在这里插入图片描述
看到m是经过一个fetch请求返回得到的
在这里插入图片描述
而fetch请求的是一个wasm文件
在这里插入图片描述
wasm文件是经过C/C++/RUST/Go等多种语言编写智能合约并编译成字节码文件
这样我们就无法看懂了
但是python中有第三方库可以对wasm文件进行解析
执行pip install pywasm
官方的实例代码
那么我们只需要下载请求时的main.wasm文件,然后在python中调用该库来进行调用其中的函数即可

步骤

  1. 下载请求中的main.wasm文件到本地
  2. 根据js代码中,获取t1和t2
  3. 将其传入到exec函数中,获取r进行拼接获取m
  4. 将m拼接到url中再拼接page即可
    代码如下
import math
import random
import time

import pywasm
import requests

runtime = pywasm.load('./main.wasm')

t1 = int(int(time.time()) / 2)
t2 = int(int(time.time()) / 2 - math.floor(random.random() * (50) + 1))
r = runtime.exec('encode', [t1, t2])
m = str(r) + '|' + str(t1) + "|" + str(t2)
headers = {
    'Host': 'match.yuanrenxue.com',
    'Connection': 'keep-alive',
    'sec-ch-ua': '"Chromium";v="106", "Microsoft Edge";v="106", "Not;A=Brand";v="99"',
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'X-Requested-With': 'XMLHttpRequest',
    'sec-ch-ua-mobile': '?0',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42',
    'sec-ch-ua-platform': '"Windows"',
    'Sec-Fetch-Site': 'same-origin',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Dest': 'empty',
    'Referer': 'https://match.yuanrenxue.com/match/15',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'Cookie': 'sessionid=cr0bsa62pjo8ge174tj1usxnfcik8cpa; Hm_lvt_c99546cf032aaa5a679230de9a95c7db=1665887019,1665888460,1665900743; qpfccr=true; no-alert3=true; Hm_lvt_9bcbda9cbf86757998a2339a0437208e=1665887019,1665888460,1665900743; tk=-1215616161085909768; yuanrenxue_cookie=1665910110|tAKJa7TEyZEZRPzVqqfpMGFYiT6mmL4gcYbHcjy6kmCoBjzmpqkwzvwr; Hm_lpvt_9bcbda9cbf86757998a2339a0437208e=1665911138; Hm_lpvt_c99546cf032aaa5a679230de9a95c7db=1665912173',
}
res = 0
for page in range(1, 6):
    if page > 3:
        headers['User-Agent'] = 'yuanrenxue.project'
    url = 'https://match.yuanrenxue.com/api/match/15?m={}&page={}'.format(m, page)
    response = requests.get(url, headers=headers)
    datas = response.json()['data']
    for data in datas:
        res += data['value']
print(res)


对于您提到的错误TypeError: list indices must be integers or slices, not str,这是因为您在访问列表中的元素时使用了字符串作为索引,而列表的索引必须是整数或切片类型。解决这个错误的方法是使用整数或切片来访问列表中的元素。 关于您提到的猿人js逆向的问,我需要更多的信息才能为您提供具体的答案。对于爬虫编写,您可以使用Python的各种库(如Requests、BeautifulSoup、Scrapy等)来获取网页的内容,并进一步解析和处理。您可以使用这些库发送HTTP请求获取网页内容,然后使用解析库来提取您需要的数据。 爬虫编写的一般步骤如下: 1. 导入所需的库 2. 发送HTTP请求获取网页内容 3. 使用解析库解析网页内容 4. 提取所需的数据 5. 进行数据的进一步处理和存储 您可以根据具体的需求和网站的结构进行相应的编写和调试。如果您需要更具体的帮助,请提供更多的信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python:TypeError: list indices must be integers or slices, not str报错解决及原理](https://blog.csdn.net/hhd1988/article/details/128031602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str](https://download.csdn.net/download/weixin_38590567/14871394)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值