import time,sys
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
def get_cookie():
options = webdriver.ChromeOptions()
options.add_argument(' headless')
options.add_argument(' no-sandbox')
options.add_experimental_option('w3c', False) # 获取linux 获取UA ,日志报错解决
url = 'https://www.cnvd.org.cn/flaw/show/CNVD-2021-93994'
caps = {
'browserName': 'chrome',
'loggingPrefs': {
'browser': 'ALL',
'driver': 'ALL',
'performance': 'ALL',
},
'goog:chromeOptions': {
'perfLoggingPrefs': {
'enableNetwork': True,
},
'w3c': False,
},
}
# windows linux
if sys.platform=='win32':
print('windows 系统')
driver = webdriver.Chrome(desired_capabilities=caps) # desired_capabilities=caps 解决获取UA异常
else:
print('否则 linux')
options = webdriver.ChromeOptions()
options.add_argument(' headless')
options.add_argument(' no-sandbox')
options.add_experimental_option('w3c', False) # 获取日志报错解决
driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver',options=options,desired_capabilities=caps)
# 解决访问cnvd 没有网络
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
driver.get(url)
import json
try:
logs = [json.loads(log['message'])['message'] for log in driver.get_log('performance')]
except:
print('获取UA异常')
# print(type(logs))
if logs:
for i in logs:
if i.get('params').get('headers'):
UA = i.get('params').get('headers').get('User-Agent')
print(UA)
break
driver.refresh()
# print(dir(driver.get_log))
time.sleep(10)
cookies = ""
for cookie in driver.get_cookies():
cookies += u"%s=%s; " % (cookie["name"], cookie["value"])
print(cookies)
driver.close()
get_cookie()
import sys,os
sys.path.append(os.getcwd()[:os.getcwd().index('cnvd')])
print(sys.path)