要使用Python的Selenium WebDriver从XHR(XMLHttpRequest)中获取响应的JSON数据,你需要执行以下步骤:
execute_cdp_cmd
方法来拦截网络请求,并获取JSON数据。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
# 初始化WebDriver
driver = webdriver.Chrome(executable_path='path/to/chromedriver')
# 打开目标网页
driver.get('https://example.com')
# 设置网络请求监听
driver.execute_cdp_cmd('Network.enable', {})
driver.execute_cdp_cmd('Network.setCacheDisabled', {'cacheDisabled': True})
# 定义回调函数处理XHR响应
def process_response(response):
if 'application/json' in response['response']['mimeType']:
print(response['response']['content'])
# 监听所有请求的响应
driver.execute_cdp_cmd('Network.responseReceived', {
'handler': process_response
})
# 等待页面加载完成或特定元素出现
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'element_id')))
# 关闭浏览器
driver.quit()
通过以上步骤,你可以有效地使用Python Selenium WebDriver来捕获和处理XHR请求中的JSON数据。
领取专属 10元无门槛券
手把手带您无忧上云