簡體   English   中英

使用 selenium chromedriver 將聯系信息添加到用戶代理

[英]Add contact information to user-agent using selenium chromedriver

我正在完成一個 web 抓取項目,我想將我的聯系人 email 添加到用戶代理,以便網站管理員想就我正在做的抓取聯系我或希望我停止時聯系我。

我在用戶代理上找到了以下文檔:

headers = {
    "User-Agent": "my web scraping program. contact me at admin@domain.com"
}
r = requests.get("http://example.com", headers=headers)

此示例涉及請求而不是 chromedriver。 我想知道是否有人知道如何在使用 selenium/chromedriver 時將這種類型的 header 信息添加到我的用戶代理中。 到目前為止,這是我的代碼:

from selenium import webdriver
import os
import re
import time
from webdriver_manager.chrome import ChromeDriverManager

chromedriver_path = os.getcwd() + '/chromedriver'
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('www.example.com')
link_url = driver.find_element_by_tag_name('a')
time.sleep(10)
html = driver.page_source
driver.close()

我不確定如何以及在何處使用我的聯系信息定義我的 header。 有任何想法嗎? 謝謝!

Selenium 實際上不直接支持請求標頭,因為它根本沒有 API 。

如果您真的必須使用 selenium 發送標頭,您唯一可行的選擇是使用 browsermob-proxy: https://github.com/lightbody/browsermob-proxy

這就是它的樣子:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('-start maximized')


headers = {'User-Agent': 'webscraper - email'}

server = Server(path='path to browsermob-proxy', options=headers)
server.start()
proxy = server.create_proxy().proxy
chrome_options.add_argument(f'--proxy-server{proxy}')

driver = webdriver.Chrome(options=chrome_options)

driver.get('your URL')

下面的代碼只是讓selenium瀏覽器window被打開。 或者,您可以輸入“--headless”,以便在運行腳本時瀏覽器 window 不會打開。

chrome_options.add_argument('-start maximized')

同樣,下面的代碼讓 chrome webdriver 知道我們要使用剛剛創建的代理服務器。 通過代理服務器進行的這種重定向使您可以將標頭添加到連接中。

chrome_options.add_argument(f'--proxy-server{proxy}')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM