如何从Python的“网络”标签中读取内容?

问题描述

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

enter image description here

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和The 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)
,

https://stackoverflow.com/a/68363046/8491363

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

另一种方法是使用 Selenium 4.0,但它仍处于测试状态。当 4.0 发布时,它将正式支持 Chrome 开发工具的东西。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...