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

收到预请求而非目标请求,无法获取目标ASCII艺术文本求助

问题根源:客户端渲染在搞鬼!

嘿,这个情况我太熟了!你直接用函数发请求拿到的只是网站的「静态骨架HTML」,而那些炫酷的Graffiti风格ASCII字母,是浏览器加载完页面后,由页面里的JavaScript代码根据你传的t=test和f=Graffiti参数动态生成并插入到页面里的。你的请求没触发JS执行,自然看不到最终的ASCII内容啦。

两种靠谱的解决办法

1. 模拟浏览器跑JS(最省心)

直接启动一个无头浏览器(就是没有可视化界面的浏览器),让它像真实用户访问一样加载页面、执行JS,之后再扒出渲染好的内容。举个Python的例子用playwright(比selenium更轻量):

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 启动无头Chrome
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    # 访问目标链接
    page.goto("http://patorjk.com/software/taag/#p=display&f=Graffiti&t=test")
    # 等ASCII内容加载出来(用浏览器开发者工具能找到这个元素的ID)
    page.wait_for_selector("#asciiArtOutput")
    # 获取文本内容
    ascii_text = page.locator("#asciiArtOutput").inner_text()
    print(ascii_text)
    browser.close()

Node.js的话可以用puppeteer,逻辑完全一样。

2. 抓包直接调用API(更高效)

如果你不想启动浏览器,也可以打开浏览器的开发者工具(F12),切换到「Network」面板,刷新页面后找一找有没有专门生成ASCII的接口——比如可能是个带text=test、font=Graffiti参数的请求,直接调用这个接口就能拿到纯ASCII文本,完全不用管JS渲染。

小提醒

用第一种方法的时候,一定要加等待元素加载的代码(比如上面的wait_for_selector),不然可能JS还没生成完内容,你就急着拿结果,还是会空的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:01:05