文章目录

  • 1. 目标网址
  • 2. 抓包分析
  • 3. 编码测试

1. 目标网址

目标网站:猿人学web第13题

2. 抓包分析

浏览器打开无痕模式,看第一页数据包:

两个名叫13的包,第二个有数据,是请求了一个api接口,第一个推断应该是加载了cookie。

点一下第二页:

发现抓不到这个包,说明有cookie验证。

我们不用无痕窗口看一下第二页:

发现是可以看的,所以接下来我们的解决思路就有了,我们先直接对这个网站发请求:

import requestssession = requests.Session()
headers = {"User-Agent": "yuanrenxue.project",
}url = "http://match.yuanrenxue.com/match/13"
r = session.get(url)
print(r.text)

结果:

<script>document.cookie=('y')+('u')+('a')+('n')+('r')+('e')+('n')+('x')+('u')+('e')+('_')+('c')+('o')+('o')+('k')+('i')+('e')+('=')+('1')+('6')+('4')+('8')+('1')+('8')+('5')+('0')+('8')+('2')+('|')+('9')+('I')+('B')+('q')+('4')+('J')+('X')+('j')+('u')+('e')+('i')+('R')+('B')+('Q')+('V')+('C')+('T')+('x')+('j')+('E')+('m')+('u')+('C')+('G')+('r')+('K')+('m')+('E')+('A')+('W')+('8')+('r')+('B')+('q')+('H')+('x')+('w')+('b')+('l')+('b')+('m')+('p')+('r')+('p')+('Y')+('y')+('X')+('m')+('2')+('e')+('z')+('6')+('K')+('L')+('g')+('T')+('s')+('b')+('E')+('N')+('J')+('j')+('E')+('M')+('D')+('z')+('L')+('I')+('7')+('V')+('5')+('Y')+('5')+('V')+('A')+('J')+('M')+('4')+('f')+('D')+('4')+('Q')+('G')+('2')+('9')+('M')+('C')+('u')+('8')+('B')+('P')+('c')+('1')+('1')+('7')+('c')+('d')+('w')+('v')+('m')+('V')+('D')+('v')+('W')+';path=/';location.href=location.pathname+location.search</script>

发现响应里面是分开凑的cookie,我们看一下第一页第一个包的cookie:

是有这个yuanrenxue_cookie的,接下来我们就只需要把cookie拼接完整,
然后拿到这个cookie,再用它保持会话状态去向其他页发请求应该就可以了。

3. 编码测试

注意:第四页和第五页的数据必须要用账号登录,把cookie放到程序里才可以拿到,并且sessionid必须在浏览器一直是登录状态才有效,一旦退出登录,sessionid会失效

这里先拿前三页:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : 冰履踏青云
# @File    : 13.py
import requests
import re
import jsonpathdef get_data(page):session = requests.Session()headers = {"User-Agent": "yuanrenxue.project",}url = "http://match.yuanrenxue.com/match/13"r = session.get(url)# print(r.text)results = re.findall("'([a-zA-Z0-9=|_])'",r.text)# print(results)cookie = ''.join(results)# print(cookie)key, value = cookie.split('=')session.cookies.set(key, value)api_url = 'https://match.yuanrenxue.com/api/match/13?page={}'.format(str(page))res = session.get(api_url,headers=headers)# print(res.json())values_list = jsonpath.jsonpath(res.json(),"$..value")return values_listif __name__ == '__main__':res_list = []for i in range(1, 4):values_list = get_data(i)res_list.extend(values_list)print(res_list,len(res_list))print('前三页所有数字之和为:',sum(res_list))

结果:

我再登录一下,把cookie复制一下,把五页全部拿完:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : 冰履踏青云
# @File    : 13.py
import requests
import re
import jsonpathdef get_data(page):session = requests.Session()# 每次请求cookie都加上sessionidrequests.utils.add_dict_to_cookiejar(session.cookies, {"sessionid": "t0yfp9ec52jvopntggd4ifxbbdwt3eg0"})headers = {"User-Agent": "yuanrenxue.project",}url = "http://match.yuanrenxue.com/match/13"r = session.get(url)# print(r.text)results = re.findall("'([a-zA-Z0-9=|_])'",r.text)# print(results)cookie = ''.join(results)print(cookie)key, value = cookie.split('=')session.cookies.set(key, value)cookie = {"cookie":"sessionid=t0yfp9ec52jvopntggd4ifxbbdwt3eg0"}api_url = 'https://match.yuanrenxue.com/api/match/13?page={}'.format(str(page))res = session.get(api_url,headers=headers)# print(res.json())values_list = jsonpath.jsonpath(res.json(),"$..value")return values_listif __name__ == '__main__':res_list = []for i in range(1, 6):values_list = get_data(i)# print(values_list)res_list.extend(values_list)print(res_list,len(res_list))print('所有数字之和为:',sum(res_list))

结果:

这里代码只需要换上你自己登录之后的sessionid就可以了,这个sessionid每次登录都不一样,退出登录就会失效,所以运行程序时浏览器要保持登录状态。

文章到此结束,但愿本文能对你有一点点帮助,欢迎三连,点个赞,收个藏啥的,有问题的尽管砸来,我有故事你有酒,好好交流不分手!下次见!

js逆向系列之猿人学爬虫第13题相关推荐

  1. js逆向系列之猿人学爬虫第17题-天杀的http2.0

    文章目录 1. 目标网站 2. 抓包分析 3. 编码测试 1. 目标网站 网址: https://match.yuanrenxue.com/match/17 2. 抓包分析 这道题目,叫天杀的http ...

  2. JS逆向实战17——猿人学第七题 动态字体 随风漂移

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 网站 第七题 动态字体,随 ...

  3. JS逆向:猿人学爬虫比赛第九题详细题解

    实战地址 http://match.yuanrenxue.com/match/9 抓包分析 地址栏输入 地址,按下F12并回车,浏览器停在这里: 不用理会它,点击下图所示的按钮: 按下F8,让浏览器继 ...

  4. AST反混淆实战:猿人学爬虫比赛第二题详细题解

    缘起 应星友要求,写下此文,哎,有钱能使鬼推磨. 实战地址: http://match.yuanrenxue.com/match/2 抓包分析 由于谷歌浏览器某些请求不会显示,建议使用火狐浏览器来抓包 ...

  5. [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(中)

    一.备注 在阅读此文章前,请先阅读前一篇<[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)> 二.找参数来源(二) 在前一篇文章中,我们找出了Cookie ...

  6. [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(下)

    一.备注 在阅读此文章前,请先阅读前两篇 <[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)> <[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第 ...

  7. [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第二题: js 混淆 - 动态Cookie

    一.题目 链接: <猿人学爬虫攻防大赛 | 第二题: js 混淆 - 动态Cookie> 二.分析 按照以往习惯,我们先按F12打开控制台,Network抓包,勾选preserve log ...

  8. 猿人学·爬虫逆向高阶课

    我跟 virjar 出了一套爬虫课(猿人学·爬虫进阶培训课),包含:安卓逆向抓取.JS 高阶逆向抓取.安卓群控抓取.容器定制化等. 实际上我去年就在做这个爬虫课了,一直没有放到网课平台上公开宣传,但是 ...

  9. 【JS逆向系列】某空气质量监测平台无限 debugger 与 python算法还原

    [JS逆向系列]某空气质量监测平台无限 debugger 与 python算法还原 1.前置阅读 2.过反调试 3.js分析 4.代码逻辑改写 1.前置阅读 样品地址:aHR0cHM6Ly93d3cu ...

最新文章

  1. Google Brain大牛Jeff dean视频
  2. Linux下如何查看哪些端口处于监听状态
  3. Android Kotlin 协程async
  4. 缓存-分布式锁-Redisson简介整合
  5. 判断是否为自然数java_java判断输入的是否是自然数
  6. 《敏捷软件开发》读书笔记 (3)--敏捷语录
  7. mysql where过滤
  8. Java学习之「Spring + AspectJ 」
  9. 计算机符号大全名字大全,符号大全_特殊符号网名大全
  10. 水果店营业额下降原因,水果店如何提高营业额
  11. LaTex便捷插入罗马数字
  12. oracle 获取日期的毫秒_Oracle date timestamp 毫秒 - 时间函数总结(转)
  13. 静态链接库(Lib) 与 动态链接库(DLL)
  14. 八个步骤教你做好会议现场管理
  15. 【自动驾驶】【数据集】KITTI数据集简介和使用+ KITTI数据集国内下载地址
  16. 十大护眼灯品牌什么牌子好?盘点护眼灯品牌排行前十名
  17. 企业微信api接口调用-触发推送企业微信微信好友
  18. 高数 李永乐 第一章
  19. 如何较为优雅地实现新手引导功能?
  20. 中国移动BOSS系统

热门文章

  1. 弘辽科技:直通车成交率多少正常?如何提高成交率?
  2. 机器学习-推荐系统-利用用户标签数据
  3. mysql 基础语法3
  4. 数模国赛计算机要学什么,数学建模国赛经验分享
  5. CentOS7和CentOS8 FreeSWITCH 1.10.7 简单图形化界面18--内网的讯时FXO网关SIP对接到内网的FreeSWITCH
  6. 在 win7 上简单搭建ftp服务器
  7. 3.表数据的CRUD
  8. iOS CoreData的使用
  9. 180天如何突击高考-从400到550?
  10. 国家示范性高职院校名单(109所)