【问题标题】:How to get a specific network header from selenium?如何从硒中获取特定的网络标头?
【发布时间】:2022-12-09 23:30:29
【问题描述】:

我正在尝试从这个网站 https://alfagift.id/ 获取特定的标头,在网络中您可以看到指纹是在客户端创建的。

我试过了,但是我无法获得指纹值所在的类别项目。有人可以帮忙吗?

目前我的代码是

# install chromium, its driver, and selenium
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
!pip install selenium
# set options to be headless, ..
from selenium import webdriver
from seleniumwire import webdriver  # Import from seleniumwire
options = webdriver.ChromeOptions()
options.set_capability(
                        "goog:loggingPrefs", {"performance": "ALL", "browser": "ALL"}
                    )
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
# open it, go to a website, and get results
driver = webdriver.Chrome('chromedriver',options=options)

driver.get('https://alfagift.id/')

log_entries = driver.get_log("performance")

我尝试在 log_entries 中找到它,但它不存在。我找到了java版的指纹嗅探器https://gist.github.com/clouedoc/4a30d8e279cb486b50bdc27d65dc67bf 但是不能在 python 中应用相同的逻辑。 我应该怎么办?

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    您可以访问在浏览器中发出的请求及其标头。因此,您可以搜索指纹头。

    fingerprintFound = False
    for request in driver.requests:
        hdict = dict(request.headers)
        for header_key in hdict.keys():
            if header_key == "fingerprint":
                fingerprint = hdict[header_key]
                fingerprintFound = True
                break
        if fingerprintFound:
            break
    print(fingerprint)
    

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多