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

Python爬取Internet Archive时Requests/Selenium获取HTML与浏览器不一致

爬取Internet Archive搜索结果的问题
  • 问题现象:用BeautifulSoup读取本地下载的HTML文件,或Chrome检查元素中的HTML显示正常,但通过requests、urllib.request、requests_html模块获取的HTML内容不符。确认页面依赖JavaScript渲染后,尝试使用Selenium处理,仍获取到异常HTML;已排除反爬(无403错误),先后尝试硬等待15秒、显式等待目标元素(触发TimeoutException),问题未解决。

初始测试代码:

from selenium import webdriver
from bs4 import BeautifulSoup

driver=webdriver.Chrome()

driver.get('https://archive.org/search?query=test')

print(driver.page_source)

6/09/2023 更新

尝试让脚本硬等待15秒以确保Chrome驱动中JavaScript完成HTML渲染,计划问题解决后改用Selenium显式等待(提升加载效率),但目前Chrome页面看似已渲染完成,输出仍为无效HTML。

测试代码:

from selenium import webdriver
from bs4 import BeautifulSoup
import time

driver=webdriver.Chrome()

driver.get('https://archive.org/search?query=test')

time.sleep(15)

soup = BeautifulSoup(driver.page_source, "lxml")
print(soup)

07/09/2023 更新

尝试通过显式等待目标元素加载,触发TimeoutException。

测试代码:

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver=webdriver.Chrome()

driver.get('https://archive.org/search?query=test')

try:
    element = WebDriverWait(driver, timeout=30).until(
        EC.presence_of_element_located((By.ID, "container"))
        )
finally:
    print(driver.page_source)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:08:13