【WP】猿人学13_入门级cookie

https://match.yuanrenxue.cn/match/13

在这里插入图片描述

抓包分析

抓包分析发现加密参数是cookie中有一个yuanrenxue_cookie
在这里插入图片描述
cookie过期的时候,就会重新给match/13发包,这个包返回一段js代码,应该是生成cookie
在这里插入图片描述

<script>document.cookie=('y')+('u')+('a')+('n')+('r')+('e')+('n')+('x')+('u')+('e')+('_')+('c')+('o')+('o')+('k')+('i')+('e')+('=')+('1')+('7')+('1')+('7')+('6')+('6')+('0')+('2')+('7')+('4')+('|')+('Y')+('i')+('g')+('i')+('A')+('J')+('D')+('w')+('G')+('L')+('x')+('6')+('5')+('Y')+('t')+('Y')+('C')+('D')+('U')+('D')+('u')+('A')+('X')+('3')+('7')+('j')+('H')+('S')+('W')+('w')+('2')+('u')+('7')+('Y')+('w')+('U')+('b')+('C')+('V')+('r')+('S')+('A')+('a')+('s')+('l')+('9')+('O')+('K')+('G')+('G')+('5')+('w')+('4')+('i')+('6')+('V')+('l')+('F')+('i')+('r')+('r')+('i')+';path=/';location.href=location.pathname+location.search</script>

这么看来还不是纯算,而是要发包单独获取。

构建Python代码获取cookie

import re

import execjs
import requests

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36"
}
cookies = {
}
url = "https://match.yuanrenxue.cn/match/13"
response = requests.get(url, headers=headers, cookies=cookies)
cookieGenerateCode = "(function f() { return " + re.search("\<script\>document\.cookie\=(.*?)\+\'\;path\=\/\'\;", response.text).group(1) + "})()"
yuanrenxue_cookie = execjs.eval(cookieGenerateCode)

下面构建爬虫代码

import re

import execjs
import requests

headers = {
    "authority": "match.yuanrenxue.cn",
    "referer": "https://match.yuanrenxue.cn/match/13",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
}
cookies = {"sessionid": "zwy0uz1vd0ge1e42310i34b37584m1lj", }

url = "https://match.yuanrenxue.cn/match/13"
response = requests.get(url, cookies=cookies)
cookieGenerateCode = "(function f() { return " + re.search("\<script\>document\.cookie\=(.*?)\+\'\;path\=\/\'\;", response.text).group(1) + "})()"
yuanrenxue_cookie = execjs.eval(cookieGenerateCode).split('=')[-1]
cookies["yuanrenxue_cookie"] = yuanrenxue_cookie

ret = 0
for pageIndex in range(1, 6):
    url = "https://match.yuanrenxue.cn/api/match/13"
    params = {
        "page": str(pageIndex)
    }
    response = requests.get(url, params=params, cookies=cookies, headers=headers)
    for item in response.json()["data"]:
        ret += item.get("value")

print(ret)

这里有个易错点,很容易犯错!!在这里插入图片描述
第一次请求cookie的时候一定要带上自己的sessionid,否则拿到的cookie 和自己sessionid不匹配,会显示page not found

在这里插入图片描述

相关推荐

  1. Rust并发编程实践:10分钟入门系统编程

    2024-06-06 20:30:05       14 阅读
  2. 入门python编程题(12)洛谷(分类平均)

    2024-06-06 20:30:05       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 20:30:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 20:30:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 20:30:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 20:30:05       20 阅读

热门阅读

  1. Mysql间隙锁死锁避免最佳实践

    2024-06-06 20:30:05       10 阅读
  2. TypeScript 中的声明合并

    2024-06-06 20:30:05       10 阅读
  3. 二叉树的层序遍历-力扣

    2024-06-06 20:30:05       9 阅读
  4. 自定义一个自己的桌面挂件

    2024-06-06 20:30:05       8 阅读
  5. Vue学习-项目化

    2024-06-06 20:30:05       10 阅读
  6. Poll机制实现以及应用实例

    2024-06-06 20:30:05       9 阅读
  7. Linux 文件权限管理中有关rwx的细节

    2024-06-06 20:30:05       10 阅读
  8. 使用element的过渡效果来做动效

    2024-06-06 20:30:05       8 阅读
  9. 设计模式-中介者模式

    2024-06-06 20:30:05       7 阅读
  10. MySQL如何多表关联更新

    2024-06-06 20:30:05       8 阅读
  11. Ubuntu中安装和配置SSH的完全指南

    2024-06-06 20:30:05       8 阅读
  12. linux实用命令

    2024-06-06 20:30:05       6 阅读
  13. uniapp vue input和textarea 的用法区别,一篇就懂

    2024-06-06 20:30:05       11 阅读