python selenium 인터페이스 데이터 획득 실현
selenium 은 쿼 리 함 수 를 직접 제공 하지 않 았 지만,webdriver 가 제공 하 는 API 를 통 해 조회 할 수 있 습 니 다.사용 하 는 함 수 는 Network.getResponse Body 입 니 다.
webdriver 가 제공 하 는 API 문서:https://chromedevtools.github.io/devtools-protocol/tot/Network/
Network.getResponseBody 문서 설명:
Network.getResponse Body 의 인 자 는 requestid 이 고 requestid 는 webdriver 가 요청 할 때마다 자동 으로 생 성 되 는 유일한 ID 입 니 다.requestid 를 받 으 면 요청 한 내용 을 받 을 수 있 습 니 다.
어떻게 requestid 를 가 져 옵 니까?웹 driver 대상 을 만 들 때 정보 설정 을 설정 하여 performance 를 얻 으 면 모든 요청 한 로그 정 보 를 얻 을 수 있 습 니 다.그리고 로그 정보 에 대한 검색 을 통 해 해당 하 는 requestid 를 찾 을 수 있 습 니 다.
로그 정 보 를 가 져 오 는 webdriver 생 성 코드(설정 정 보 를 입력 해 야 로그 정 보 를 가 져 올 수 있 습 니 다):
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
caps = {
'browserName': 'chrome',
'loggingPrefs': {
'browser': 'ALL',
'driver': 'ALL',
'performance': 'ALL',
},
'goog:chromeOptions': {
'perfLoggingPrefs': {
'enableNetwork': True,
},
'w3c': False,
},
}
driver = webdriver.Chrome(desired_capabilities=caps)
driver.get('https://partner.oceanengine.com/union/media/login/')
# , ,
time.sleep(3)
request_log = driver.get_log('performance')
인쇄 requestlog 는 하나의 배열 이 고 request 를 옮 겨 다 닙 니 다.log 검색 에서 가 져 올 url 에 대응 하 는 requestid,예 를 들 어 가 져 올 필요https://s3.pstatp.com/bytecom/resource/union_웹 2/media/manifest.json 에 대응 하 는 requestid,인터페이스 내용 가 져 오기:
for i in range(len(request_log)):
message = json.loads(request_log[i]['message'])
message = message['message']['params']
# .get()
request = message.get('request')
if(request is None):
continue
url = request.get('url')
if(url == "https://s3.pstatp.com/bytecom/resource/union_web2/media/manifest.json"):
# requestId
print(message['requestId'])
# requestId
content = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': message['requestId']})
print(content)
break
전체 코드:
import json
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
caps = {
'browserName': 'chrome',
'loggingPrefs': {
'browser': 'ALL',
'driver': 'ALL',
'performance': 'ALL',
},
'goog:chromeOptions': {
'perfLoggingPrefs': {
'enableNetwork': True,
},
'w3c': False,
},
}
driver = webdriver.Chrome(desired_capabilities=caps)
driver.get('https://partner.oceanengine.com/union/media/login/')
# , ,
time.sleep(3)
request_log = driver.get_log('performance')
print(request_log)
for i in range(len(request_log)):
message = json.loads(request_log[i]['message'])
message = message['message']['params']
# .get()
request = message.get('request')
if(request is None):
continue
url = request.get('url')
if(url == "https://s3.pstatp.com/bytecom/resource/union_web2/media/manifest.json"):
# requestId
print(message['requestId'])
# requestId
content = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': message['requestId']})
print(content)
break
python selenium 이 인터페이스 데 이 터 를 가 져 오 는 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 python selenium 이 인터페이스 데 이 터 를 가 져 오 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.