🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。
前言:
🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~
👍专栏介绍:猿人学WEB题目专解 ,提供猿人学WEB题目总计20题的解题思路与方法,如有讲述错误,请不吝赐教。
想看往期历史文章,可以浏览此博文: 历史文章目录,后续所有文章发布都会同步更新此博文~

题目网址
题目详情

让我们计算 加和。
题目思路
这题既然写入门 Cookie ,那肯定要来看看 Cookie ,一眼就见到了 yuanrenxue_cookie 这个特殊的 Cookie :

既然这 Cookie 不是自带的,是通过js设置的,那我们就给脚本的第一个语句打上断点,阻止页面的第一次js加载:

然后我们可以看到我们这个页面是一串 script 标签:

看来 Cookie 就是通过这个设置的了,我们通过正则也好,replace 也好,取出 cookie 应该轻而易举吧~
示范用 replace 去除的(懒得导入正则模块):
new_cookie = session.get('https://match.yuanrenxue.com/match/13').text.replace('<script>document.cookie=', '').replace("';path=/';location.href=location.pathname+location.search</script>", '').replace("('", '').replace("')+", '')
在访问这个网页之前,需要先设置好 Cookie ,由于 Cookie 是由网页本身直接设置的,所以此处要用 Session,方便接收 Set-Cookie 请求头, Session 设置 Cookie 的方式:
session.cookies = requests.utils.cookiejar_from_dict(cookie_dict)
获取 Session 的 Cookie 的方式:
cookie_dict = requests.utils.dict_from_cookiejar(session.cookies)
解题源码
import jsonpath
import requests.utils
session = requests.session()
session.headers = {
'User-Agent': 'yuanrenxue.project'
}
session.cookies = requests.utils.cookiejar_from_dict({'sessionid': 'pvsqc0xfuypgsqvp7fn0lisczrxpsz4n'})
new_cookie = session.get('https://match.yuanrenxue.com/match/13').text.replace('<script>document.cookie=', '').replace("';path=/';location.href=location.pathname+location.search</script>", '').replace("('", '').replace("')+", '')
cookies = requests.utils.dict_from_cookiejar(session.cookies)
cookies.update({k: v for k, v in [new_cookie.split('=')]})
session.cookies = requests.utils.cookiejar_from_dict(cookies)
value = 0
for index in range(1, 6):
url = f"https://match.yuanrenxue.com/api/match/13?page={index}"
# value += sum(v['value'] for v in session.get(url).json()['data'])
value += sum(jsonpath.jsonpath(session.get(url).json(), '$..value'))
print(value)

1067

被折叠的 条评论
为什么被折叠?



