You need to enable JavaScript to run this app. 使用Python提取网页JavaScript中base64编码内容内的URL
优惠活动
大模型
产品
解决方案
定价
更多

使用Python提取网页JavaScript中base64编码内容内的URL

解决方法

实现逻辑

  • 第一步:用正则从原始网页源码中匹配document.write(Base64.decode("与"))之间的Base64编码串
  • 第二步:对捕获到的Base64串做UTF-8解码,得到包含iframe标签的HTML片段
  • 第三步:从解码后的片段中提取iframe的src属性值,即目标URL

可运行完整代码

import re
import base64

# 此处替换为你实际爬取得到的网页源码内容
raw_page_content = '''
<div class="content_swf" style="position: relative;">
    <div class="player">
        <div class="mediaplayer" id="mediaplayer">
<script type="text/javascript">document.write(Base64.decode("PGlmcmFtZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBhbGxvd2Z1bGxzY3JlZW4gd2Via2l0YWxsb3dmdWxsc2NyZWVuIG1vemFsbG93ZnVsbHNjcmVlbiBmcmFtZWJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PU9jajBzVkI5eWtZIiBzY3JvbGxpbmc9Im5vIj48L2lmcmFtZT4=="));</script>
        </div>
    </div>
</div>
'''

# 提取Base64编码串
b64_result = re.search(r'document\.write\(Base64\.decode\("([^"]+)"\)\)', raw_page_content)
if not b64_result:
    print("无匹配的Base64内容")
    exit()
base64_str = b64_result.group(1)

# 解码得到iframe片段
decoded_iframe = base64.b64decode(base64_str).decode('utf-8')

# 提取目标URL
url_result = re.search(r'<iframe\s+[^>]*src=["\']([^"\']+)["\']', decoded_iframe)
if url_result:
    target_url = url_result.group(1)
    print(target_url)

关键注意点

  • 正则匹配特殊字符需要转义:.、(、)属于正则语法保留字符,匹配原生内容时必须加反斜杠转义
  • 原代码存在变量顺序错误:未给url变量赋值就调用base64.b64decode(url),会直接触发未定义错误
  • 提取src的正则增加了[^>]*匹配src之前的其他属性,兼容性更强,可适配不同属性顺序的iframe标签

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 07:45:05