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

如何用Python的requests提取网页JS函数中的隐藏值?

提取JavaScript文本中的目标值解决方案

你可以通过正则表达式精准匹配并提取这两个目标值,r.html.search()仅适合简单占位符匹配,对于带格式的JS代码片段,正则的灵活性更强。

具体实现代码

from requests_html import HTMLSession
import re

url = 'link'
session = HTMLSession()
r = session.get(url)
r.html.render(sleep=2)
page_text = r.html.text

# 提取第一个目标值:123456789023
pattern1 = r"document.getElementById\('randomcode'\).value\s*=\s*'([^']+)'"
match1 = re.search(pattern1, page_text)
if match1:
    target_value1 = match1.group(1)
    print("第一个目标值:", target_value1)
else:
    print("未找到第一个目标值")

# 提取第二个目标值:1823947239d23dc23dsar238rt3r
pattern2 = r'completef\("([^"]+)"\)'
match2 = re.search(pattern2, page_text)
if match2:
    target_value2 = match2.group(1)
    print("第二个目标值:", target_value2)
else:
    print("未找到第二个目标值")

代码说明

  • [^']+和[^"]+分别表示匹配除单/双引号外的所有字符,确保只提取引号内的目标内容;
  • \s*用来匹配代码中可能存在的任意空格,避免因空格数量不同导致匹配失败;
  • 若页面存在多个类似片段,可改用re.findall()获取所有匹配结果。

原方法失败原因

r.html.search("checkbox")仅会返回包含"checkbox"的文本片段,无法提取后续目标值。即便用占位符语法(如r.html.search("document.getElementById('randomcode').value = '{}'")),也对代码格式要求极高,一旦JS里的空格、引号格式变化就会失效,远不如正则稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:10:58