python获取网站所有请求头信息_python + selenium 获取请求头 User-Agent 信息

网上找了好多资料,都是说怎么设置请求头的信息。

却没有说怎么获取由 selenium 提交的请求头。

尝试了好久,总结了一个办法,下面上代码:

from selenium import webdriver

driver_path = r'F:\driver\chromedriver.exe' # 这是chrome驱动路径

# 自定义代理IP 及 请求头。

chromeOptions = webdriver.ChromeOptions()

chromeOptions.add_argument("--proxy-server=http://218.93.119.165:9002")

chromeOptions.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 \

like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like \

Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')

browser = webdriver.Chrome(executable_path=driver_path, chrome_options=chromeOptions)

browser.get("http://httpbin.org/ip") # 查看IP是否切换。

print(browser.page_source)

# 获取请求头信息

agent = browser.execute_script("return navigator.userAgent")

print(agent) # 查看请求头是否更改。

下面方法,在之前的chrome版本中可行,现已失效。

from selenium import webdriver

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

import json

# 设置变量url,用于浏览器访问。

url = 'https://www.baidu.com/'

# 关键步骤 1:下面两行代码是用来设置特性,获取request的信息前提步骤。

d = DesiredCapabilities.CHROME

d['loggingPrefs'] = {'performance': 'ALL'}

path = 'D:\work\chromedriver.exe'

browser = webdriver.Chrome(executable_path=path)

# 打开浏览器并访问网址

browser.get(url)

# 关键步骤2:获取 request 信息。

info = browser.get_log('performance') # 这里的参数 'performance' 是步骤1中添加的。获取到的是一个列表。

# 用 for循环读取列表中的每一项元素。每个元素都是 json 格式。

for i in info:

dic_info = json.loads(i["message"]) # 把json格式转成字典。

info = dic_info["message"]['params'] # request 信息,在字典的 键 ["message"]['params'] 中。

if 'request' in info: # 如果找到了 request 信息,就终断循环。

print(info['request'])

break

获取到的结果为:

{'headers': {'Upgrade-Insecure-Requests': '1',

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36'},

'initialPriority': 'VeryHigh',

'method': 'GET',

'mixedContentType': 'none',

'referrerPolicy': 'no-referrer-when-downgrade',

'url': 'https://www.baidu.com/'}

你可能感兴趣的:(python获取网站所有请求头信息_python + selenium 获取请求头 User-Agent 信息)