使用BeautifulSoup抓取CSGOEmpire页面Rolling时间失败求助
解决CSGOEmpire倒计时抓取失败的问题
你的代码无法抓取到Rolling状态倒计时的核心原因是:CSGOEmpire的倒计时内容是通过JavaScript动态渲染生成的,而requests.get()只能获取页面的静态HTML源码,无法执行页面中的JS逻辑,所以你拿到的HTML里根本不存在那些动态生成的倒计时元素,自然用BeautifulSoup找不到目标内容。
可行解决方案:使用浏览器自动化工具(以Selenium为例)
这类工具可以模拟真实浏览器的行为,等待页面JS渲染完成后再抓取内容,具体步骤如下:
安装依赖与驱动
先安装Selenium库:pip install selenium再下载对应浏览器的驱动(比如Chrome的ChromeDriver),确保驱动版本和你的浏览器版本匹配。
示例代码
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 初始化Chrome浏览器驱动(需确保ChromeDriver路径正确) driver = webdriver.Chrome() driver.get("https://csgoempire.com/") try: # 等待倒计时元素加载完成(最多等待10秒) countdown_element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, "div.text-2xl.font-bold.font-numeric")) ) # 打印倒计时文本 print("当前Rolling倒计时:", countdown_element.text) finally: # 关闭浏览器 driver.quit()
补充说明
- 除了Selenium,也可以选择Playwright,它的API更简洁,对异步场景支持更友好。
- 注意网站的反爬机制,频繁抓取可能触发IP封禁,建议添加适当延迟,避免过度请求服务器。
内容的提问来源于stack exchange,提问作者Pogo
相关产品推荐
相关产品推荐

