首页 > 解决方案 > 使用 Python 获取新 Chrome 选项卡的 HTML

问题描述

我正在尝试抓取新 chrome 选项卡的 HTML 代码,但我找不到使用 Python 的方法。

这是我尝试过的:

我已经尝试过该requests模块,但是这段代码:

import requests

URL = "chrome://newtab"
page = requests.get(URL)

print(page.text)

产生此错误:

Traceback (most recent call last):
  File "c:\Users\Ben Bistline\Code\PythonFiles\PythonFiles\chromescrape.py", line 4, in <module>
    page = requests.get(URL)
  File "C:\Users\Ben Bistline\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\Ben Bistline\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\Ben Bistline\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\Ben Bistline\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\sessions.py", line 649, in send
    adapter = self.get_adapter(url=request.url)
  File "C:\Users\Ben Bistline\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\sessions.py", line 742, in get_adapter
    raise InvalidSchema("No connection adapters were found for {!r}".format(url))
requests.exceptions.InvalidSchema: No connection adapters were found for 'chrome://newtab'

我想这个结果是有道理的,但我不确定如何/是否可以绕过它。

我也试过使用webbrowser这个代码的模块:

import requests, webbrowser

URL = "chrome://newtab"
chromePath = 'C:/Program Files/Google/Chrome/Application/chrome.exe %s'

webbrowser.get(chromePath).open(URL)

不幸的是,虽然成功,但这种方法似乎并没有提供一种收集 HTML 的方法。

任何人都知道使用 Python 获取新 Chrome 标签的 HTML 的任何其他方法吗?

谢谢!

标签: pythongoogle-chromepython-requestspython-webbrowser

解决方案


您可以将Selenium 驱动程序与 Chrome 一起使用来做到这一点

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('chrome://newtab')
content = driver.page_source
browser.close()

推荐阅读