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
相关产品推荐
相关产品推荐

