听Ta说

  • {{ item.name }}
  • 目标
  • 分析
  • 还原
  • 首页
  • 归档

猿人学_13_动态cookie入门

  • Gorkys
  • 2022-10-27
  • 0

目标

考点:入门级cookie

任务十三:还是抓取这5页的数字,计算加和并提交结果

https://match.yuanrenxue.com/match/13

分析

首先看请求数据,考点为cookie,就需要着重关注一下cookie。

第一个请求就带了可疑cookie

截图

在这里卡住一会儿,一时无从下手。后面使用第三方抓包工具charles抓包,发现了端倪。

截图

请求了两次目标网站,第一次返回的是一串script,从代码很明显发现这就是关键所在。单个字符拼接而成。丢控制台运行一下

截图

没错,就是它了,理一下逻辑。如果没有这串cookie请求链接就会返回script,生成cookie,再携带着cookie神不知鬼不觉跳转到链接。

还原

# ==================================
# --*-- coding: utf-8 --*--
# @Time    : 2022/9/22 12:49
# @Author  : Gorkys
# @FileName: main.py
# @Software: PyCharm
# @describe: 猿人学第十二题
# ==================================
import requests
import re

# 涉及到cookie一般选择session保持会话
session = requests.session()
session.headers["User-Agent"] = "yuanrenxue.project"
session_id = {"sessionid": "woq4i0ilxxoh74qnx6nj67fdc38mue8m"}
session.cookies.update(session_id)

priceCount = 0

def getCookie():
    url = "https://match.yuanrenxue.com/match/13"
    res = session.get(url).text
    # 匹配出对应数据并拼接成字符串
    cookie = "".join(re.compile(r"\('(.)'\)", re.S).findall(res)).split("=")
    session.cookies.update({cookie[0]: cookie[1]})

def getPriceList(page):
    global priceCount
    params = {
        'page': str(page),
    }

    response = session.get('https://match.yuanrenxue.com/api/match/13', params=params)
    print(response.text)
    data = response.json()["data"]
    for i in range(len(data)):
        priceCount += data[i]["value"]

getCookie()
for i in range(5):
    getPriceList(i + 1)

print(priceCount)
# 213133
© 2025 听Ta说
湘ICP备2021002328号
Theme by Wing