How to Capture request Selenium (Chrome) use Python
byTOOLAV-0
import json, time
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
def process_browser_log_entry(entry):
response = json.loads(entry['message'])['message']
return response
caps = DesiredCapabilities.CHROME
caps['goog:loggingPrefs'] = {'performance': 'ALL'}
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-gpu')
options.add_argument('--ignore-certificate-errors')
driver = webdriver.Chrome(desired_capabilities=caps)
driver.get('https://www.douyin.com/user/MS4wLjABAAAAWFJ0Xj7_-WtvDgfKp8FN75DAWlJNLkGtwgMOJ33Iu-EJdD9wotVMiZOer38cFAdA?previous_page=app_code_link')
time.sleep(50)
netLog = driver.get_log('performance')
events = [process_browser_log_entry(entry) for entry in netLog]
events = [event for event in events if 'Network.responseReceived' in event['method']]
for item in events:
if "response" in item["params"]:
if "url" in item["params"]["response"]:
if 'aweme/post' in item["params"]["response"]["url"]:
print(json.dumps(item["params"], indent=4))
body = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': item["params"]["requestId"]})
try:
print(body)
except:
pass
print(item["params"]["response"]["url"])
driver.close()
driver.quit()
Đăng nhận xét