Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用selenium chromedriver向用户代理添加联系人信息_Python_Header_Selenium Chromedriver_Contacts_User Agent - Fatal编程技术网

Python 使用selenium chromedriver向用户代理添加联系人信息

Python 使用selenium chromedriver向用户代理添加联系人信息,python,header,selenium-chromedriver,contacts,user-agent,Python,Header,Selenium Chromedriver,Contacts,User Agent,我正在完成一个网页抓取项目,我想将我的联系电子邮件添加到用户代理,这样,如果网站管理员想就我正在进行的抓取与我联系,或者想让我停止,就可以与我联系 我发现了有关用户代理的以下文档: headers = { "User-Agent": "my web scraping program. contact me at admin@domain.com" } r = requests.get("http://example.com",

我正在完成一个网页抓取项目,我想将我的联系电子邮件添加到用户代理,这样,如果网站管理员想就我正在进行的抓取与我联系,或者想让我停止,就可以与我联系

我发现了有关用户代理的以下文档:

headers = {
    "User-Agent": "my web scraping program. contact me at admin@domain.com"
}
r = requests.get("http://example.com", headers=headers)
此示例涉及请求而不是chromedriver。我想知道是否有人知道我如何在使用selenium/chromedriver时将这种类型的头信息添加到我的用户代理中。 这是我目前的代码:

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()


我不确定如何以及在何处使用我的联系信息定义标题。有什么想法吗?谢谢

Selenium实际上并不直接支持请求头,因为它根本没有API

如果您真的必须使用selenium发送头,您唯一可行的选择是使用browsermob代理:

这就是它的样子:

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浏览器窗口。 或者,您可以放置'--headless',以便在运行脚本时浏览器窗口不会打开

chrome_options.add_argument('-start maximized')
类似地,下面的代码让chromewebdriver知道我们想要使用刚刚创建的代理服务器。通过代理服务器的这种重定向,您可以向连接添加头

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

您好Timothee,感谢您的编辑,我还是selenium的新手,不知道您是否可以澄清chrome_选项。添加_arugement(-start maximized)和(f'--proxy server{proxy})指的是什么?另外,为了检查我的理解,我可以将服务器路径定义为/username/desktop/等,对吗?我更新了答案以澄清,是的,服务器路径可以定义为这样。你不需要browsermox代理,你可以通过API在chrome中设置useragent。chrome\u选项。添加参数('user-agent=您的信息\自定义用户代理“”)