from selenium import webdriver
# import requests, time, json, re
from datetime import datetime, timedelta
from time import sleep
# from lxml import etree
import socket
from hashlib import sha1
import requests
class Driver(object):
def driver(self):
"""获取cookie"""
options = webdriver.ChromeOptions()
# options.add_argument('--headless')#使用不启动浏览器的方式
options.add_argument("--start-maximized") # 开始最大化
options.add_argument("--test-type")
options.add_argument("--ignore-certificate-errors") # 忽略证书错误
options.add_argument("--disable-popup-blocking") # 禁用弹出拦截
options.add_argument("no-sandbox") # 取消沙盒模式
options.add_argument("no-default-browser-check") # 禁止默认浏览器检查
options.add_argument("about:histograms")
options.add_argument("about:cache")
options.add_argument("disable-extensions") # 禁用扩展
options.add_argument("disable-glsl-translator") # 禁用GLSL翻译
options.add_argument("disable-translate") # 禁用翻译
options.add_argument("--disable-gpu") # 谷歌文档提到需要加上这个属性来规避bug
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--hide-scrollbars") # 隐藏滚动条, 应对一些特殊页面
options.add_argument("blink-settings=imagesEnabled=false") # 不加载图片, 提升速度
options.add_argument("start-maximized")
# options.add_argument("--user-data-dir=C:/Users/wangshuguang11/AppData/Local/Google/Chrome/User Data/Profile 6") # 浏览器路径
options.add_argument("blink-settings=imagesEnabled=false") # 不加载图片
# 初始化driver
path = "/Users/Amy/tool/chromedriver"
# dr = webdriver.Chrome(executable_path=path,options=options)
dr = webdriver.Chrome(path,options=options)
return dr
def api_session(self,url):
s = requests.session()
s.get(url)
return s
def login(self,url,username,pwd):
dr = self.driver()
dr.get(url)
dr.find_element_by_id("userName").send_keys(username)
dr.find_element_by_id("password").send_keys(pwd)
dr.find_element_by_xpath('//*[@id="loginForm"]/button').click()
sleep(4)
return dr
def api_change_cookie(self):
cookie = [item["name"] + "=" + item["value"] for item in self.login(url,username,pwd).get_cookies()]
cookiestr = ';'.join(item for item in cookie)
return cookiestr
#headers={'cookie':cookiestr}
if __name__ == '__main__':
url = "https://XXXXX.com/dashboard"
username = "username"
pwd = "password"
apicookie = Driver().api_change_cookie()
print('coo',apicookie)
UI登录后获取cookie供接口调用(selenium+python)
最新推荐文章于 2023-06-21 16:09:59 发布