You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python requests获取SCP随机条目重定向链接失败该如何解决?

问题根源

SCP Wiki的random:random-scp随机入口未采用服务端3xx重定向逻辑,随机条目跳转通过页面内嵌JavaScript在客户端执行实现。requests库仅可处理服务端返回的重定向响应,不会执行页面JS代码,因此仅能获取初始空白页的内容,无法得到最终的SCP条目地址。

修复实现方案

直接从请求返回的静态页面内容中匹配JS逻辑里的跳转地址即可,添加正常浏览器UA头可避免被站点反爬策略拦截,示例代码如下:

#!/usr/bin/env python
import requests
import re

url = "https://scp-wiki.wikidot.com/random:random-scp"
# 模拟浏览器请求头,避免被拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
r = requests.get(url, headers=headers)

# 正则匹配JS中的跳转链接
match = re.search(r'window\.location\.href\s*=\s*"([^"]+)"', r.text)
if match:
    scp_url = match.group(1)
    print(scp_url)
    # 后续可继续请求scp_url获取对应条目详情
else:
    print("未匹配到随机条目地址")

如果后续需要爬取包含更多动态渲染内容的页面,可改用支持JS执行的请求库(如requests-html、playwright)直接获取渲染后的结果,无需手动解析JS逻辑。

内容的提问来源于stack exchange,提问作者ChemistryIsTheBest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:06:03