selenium4 请求chrome 如何添加header请求头

前言

  • selenium的webdriver本身没有api能做这个事情,详见issue
  • 国内的博客全抄来抄去,说selenium直接加add_argument参数就好了,弄得找了好几天找代码问题,上外网查秒解决。所以要学好计算机还是得英文呐~~
  • 我用requests登录后,获取到了认证信息,但是接下来的请求我不再使用requests,而是需要用Chrome或Firefox浏览器进行操作,页面中认证信息不是加在Cookie中,而是加在header的Security中(名称为Authorization),Selenium是不可以添加的,查询到Selenium-wire可以,具体用法如下:

解决

1. 安装selenumwire库

 

pip3 install selenium-wire

 

2.具体代码:

from seleniumwire import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')#适用于 linux系统的 浏览器无gui模式的: 无头模式
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("no-sandbox")
chrome_options.add_argument("--disable-extensions")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.header_overrides = {"tmp": "tomjobs"}
driver.get("https://httpbin.org/headers")  # 可以看到请求的header头
print(driver.page_source) #打印页面得所有资源
for request in self.driver.requests:
    print("请求头header信息:")
    print(request.headers)
    break  #只打印一次即可



3.尝试了一下,不添加这些argument依然可以成功添加请求头:

        # Enable selenium download function
        chrome_options = webdriver.ChromeOptions()
        if platform.system() == "Linux":
            chrome_options.add_argument("--headless") #无头模式
        try:
            service = Service(executable_path=ChromeDriverManager().install())#只有第一次执行能成功,如果不存在就安装,如果已经安装就捕获异常:不需要再安装了
        except:
            service = Service()
        env_dist = os.environ
        self.header1= "test2"
        self.header2= "test2"
        try:
            self.header1= env_dist["test1"]
            self.header2= env_dist["test2"]
            print("header1= %s, header2= %s " % (self.header1, self.header2))
        except:
            pass

        self.driver = webdriver.Chrome(service=service, options=chrome_options)
        self.driver.header_overrides = {"header1": self.header1, "header2": self.header2}
        for request in self.driver.requests:
            print("请求头header信息:")
            print(request.headers)
            break  #只打印一次即可

 

 

参考 : https://blog.csdn.net/tomjobs/article/details/128277383

posted @ 2023-09-11 21:48  苹果芒  阅读(1491)  评论(0编辑  收藏  举报