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

使用urllib读取网页仅获元数据,如何获取实际页面HTML?

解决Distil反爬,获取实际页面内容

兄弟,你这明显是撞上Distil Networks的反爬机制了!你拿到的那段HTML里的<meta http-equiv="refresh">、sessionStorage操作还有隐藏样式,都是它用来检测是否为真实浏览器访问的手段——普通的urllib只是发送了纯HTTP请求,根本不执行JavaScript,自然过不了它的验证,只能拿到这个“拦截页”。

要拿到页面检查里看到的实际内容,你需要模拟真实浏览器的行为,这里给你两个实用的方案:

方案一:用Selenium操控真实浏览器

Selenium可以调用Chrome、Firefox这类真实浏览器,自动执行JS、处理页面跳转,完美绕过这类需要浏览器环境的反爬。

步骤:

  1. 先安装Selenium库:
    pip install selenium
    
  2. 下载对应浏览器的Driver(比如ChromeDriver,要和你的Chrome版本匹配),放到系统PATH里或者指定路径。

示例代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

# 设置浏览器选项,模拟真实UA
options = Options()
options.add_argument('user-agent=Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11')
# 可选:无头模式(不弹出浏览器窗口)
# options.add_argument('--headless=new')

# 初始化浏览器
driver = webdriver.Chrome(options=options)

try:
    # 访问目标页面
    driver.get('https://www.example.com')
    # 等待页面加载完成(可以根据实际元素等待,更精准)
    time.sleep(3)
    # 获取实际渲染后的HTML源码
    actual_html = driver.page_source
    print(actual_html)
finally:
    # 关闭浏览器
    driver.quit()

方案二:用Playwright(更轻量,无需单独装Driver)

Playwright是微软推出的自动化工具,自带浏览器驱动,API更简洁,也能很好处理动态页面和反爬。

步骤:

  1. 安装Playwright和浏览器:
    pip install playwright
    playwright install chrome
    

示例代码:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 启动浏览器,设置UA
    browser = p.chromium.launch(headless=False)  # headless=True可以不显示窗口
    page = browser.new_page(user_agent='Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11')
    page.goto('https://www.example.com')
    # 等待页面加载完成
    page.wait_for_load_state('networkidle')
    # 获取实际HTML
    actual_html = page.content()
    print(actual_html)
    browser.close()

注意事项

  • 不要频繁请求!给请求加个随机延迟(比如2-5秒),不然很容易被封IP。
  • 如果目标网站有验证码,可能还需要额外处理,但先把浏览器模拟这一步搞定,大部分基础反爬都能过。
  • 新手阶段先专注于模拟浏览器的基础用法,等熟悉了再考虑代理池、随机UA池这些进阶操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:09:00