from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from seleniumwire import webdriver
import time
# 设置浏览器隐身模式,运行此代码不会显示浏览器
chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=chrome_options)
url = "http://www.*******.com/login"
def get_token(username="*****", password="********"):
# 操作浏览器,打开url,用户名密码登陆
driver.get(url)#访问登录网址
#设置网页加载时间,防止网页未加载完成去定位元素报异常
time.sleep(2)
# 定位用户名元素并输入
driver.find_elements(by=By.TAG_NAME, value="input")[0].send_keys(username)
#定位密码元素并输入
driver.find_elements(by=By.TAG_NAME, value="input")[1].send_keys(password)
# 定位登陆按钮并点击
driver.find_element(By.TAG_NAME, "button").click()
#driver.requests返回的是登陆网页后所有的请求(如get,post)元素列表(如下图),我们取其中一个请求就行了,
#如果在请求头没有发现你所需要的数据(如token令牌信息),可以多尝试列表里面的其他的请求
url1 = driver.requests[-1]
#获得token令牌数据
token = dict(url1.headers)["token"]
#关闭浏览器
driver.close()
return token
if __name__ == '__main__':
print(get_token())
python 用seleniumwire模块获取网站登陆后的请求头token字符串数据
于 2022-05-23 13:56:56 首次发布