如何使用Python获取Chrome新标签页的HTML源代码?
获取Chrome新标签页HTML代码的Python实现方案
原有方案失效原因
requests仅支持HTTP/HTTPS等标准网络协议,无法识别Chrome内部的chrome://专有协议,因此直接请求会触发协议适配报错webbrowser模块仅具备调用本地浏览器打开指定地址的能力,没有提供读取页面DOM内容的接口,无法满足抓取需求
可行实现方案(基于Selenium)
Selenium是常用的浏览器自动化工具,可以直接操作Chrome浏览器实例,支持读取所有浏览器可访问页面的源码,包括chrome://开头的内部页面。
环境准备
安装Selenium库(推荐使用4.0+版本,可自动管理ChromeDriver,无需手动下载匹配版本):
pip install selenium
示例代码
from selenium import webdriver from selenium.webdriver.chrome.options import Options import time # 配置Chrome选项 chrome_options = Options() # 如果不需要显示浏览器窗口,可以取消下面这行注释 # chrome_options.add_argument("--headless=new") # 启动Chrome实例 driver = webdriver.Chrome(options=chrome_options) try: # 打开Chrome新标签页 driver.get("chrome://newtab") # 等待1秒确保动态内容渲染完成,可根据实际情况调整时长 time.sleep(1) # 获取页面完整HTML代码 page_html = driver.page_source # 输出HTML print(page_html) # 也可以写入到本地文件 # with open("newtab.html", "w", encoding="utf-8") as f: # f.write(page_html) finally: # 关闭浏览器实例 driver.quit()
注意事项
- Chrome新标签页的部分内容是用户专属的动态内容(如常用访问站点快捷方式、个性化推荐等),抓取到的内容和当前Chrome登录的账号、本地配置有关
- 如果需要抓取已经打开的浏览器里的新标签页内容,可以给Chrome添加远程调试端口启动,再通过Selenium连接已有的浏览器实例即可
内容的提问来源于stack exchange,提问作者Benjiboy50Fonz
相关产品推荐
相关产品推荐

