如何读取 Python 中的网络选项卡?

How to read from the network tab in Python?

使用 Selenium、Requests 和 Beautiful Soup,我希望能够找到并打印此 .m3u8 link(或此处显示的任何 link),但我不知道'知道在 Python.

中显示请求

def locator(url):
    driver = sp.driver # just geckodriver with profile
    driver.get(url)
    sleep(4)
    # from here needs to somehow access the network tab & locate GET requests with Host == "cfvod.kaltura.com"

必须使用 ChromeDriver、PyChrome 和 DevTools 协议,但这行得通:

def outputstart(**kwargs):
    print("START ", kwargs)

driver = sp.driver # my chromedriver profile with an argument added for port 8000

dev_tools = pychrome.Browser(url="http://localhost:8000")
tab = dev_tools.list_tab()[0]
tab.start()

url = 'https://google.com'

start = time.time()
driver.get(url)
tab.call_method("Network.emulateNetworkConditions",
            offline=False,
            latency=100,
            downloadThroughput=93750,
            uploadThroughput=31250,
            connectionType="wifi")

def outputstart(**kwargs):
    print("START ", kwargs)

tab.call_method("Network.enable", _timeout=20)
tab.set_listener("Network.requestWillBeSent", outputstart)

我使用 selenium(当前版本 3.0)读取网络日志。查看上面的link。

另一种方法是使用 Selenium 4.0,但它仍处于测试阶段。当 4.0 发布时,它将正式支持 Chrome 开发工具内容。