Oxylabs Documentation
中文
搜索文档…
⌃K

Selenium

Selenium是一个有助自动化网络浏览器网站测试互动等的工具。当您需要与浏览器互动以执行一些任务时,它非常实用,例如点击按钮、滚动等。即使 Selenium 主要用于网站测试,您亦可用它来进行网络抓取,因为它有助在网站上找到所需的公共数据。
将 Selenium 集成到 Oxylabs 代理,请遵循以下说明操作:
  • 首先,您需要安装 Selenium Wire,以扩展 Selenium 的 Python 绑定,因为使用默认的 Selenium 模块来实现需要认证的代理会使整个过程变得复杂。您可以使用 pip 命令来执行:pip install selenium-wire
  • 另一个推荐的集成包是 webdriver-manager。这是一个简化不同浏览器的二进制驱动管理的软件包。在这种情况下,没有必要在每次更新后手动下载新版本的网络驱动程序
  • 您亦可用 pip 命令来安装 webdriver-manager以及:pip install webdriver-manager
代理身份验证
设置好后,您便可进入下一个部分 – 代理认证。您会被提示指定您的账户凭证来使代理运作。
USERNAME = "your_username" PASSWORD = "your_password" ENDPOINT = "pr.oxylabs.io:7777"
您需要用您代理用户的用户名和密码调整 your_usernameyour_password字段。
测试代理服务器连接
如果您需要检查代理是否在工作,则应该访问 ip.oxylabs.io。如果一切工作正常,它将返回您正在使用的代理的 IP 地址。
检查代理是否运行:
try:
driver.get("https://ip.oxylabs.io/")
return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}'
finally:
driver.quit()
Oxylabs 的住宅代理与 Selenium 集成的完整代码:
from selenium.webdriver.common.by import By
from seleniumwire import webdriver
# A package to have a chromedriver always up-to-date.
from webdriver_manager.chrome import ChromeDriverManager
USERNAME = "your_username"
PASSWORD = "your_password"
ENDPOINT = "pr.oxylabs.io:7777"
def chrome_proxy(user: str, password: str, endpoint: str) -> dict:
wire_options = {
"proxy": {
"http": f"http://{user}:{password}@{endpoint}",
"https": f"http://{user}:{password}@{endpoint}",
}
}
return wire_options
def execute_driver():
options = webdriver.ChromeOptions()
options.headless = True
proxies = chrome_proxy(USERNAME, PASSWORD, ENDPOINT)
driver = webdriver.Chrome(
ChromeDriverManager().install(), options=options, seleniumwire_options=proxies
)
try:
driver.get("https://ip.oxylabs.io/")
return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}'
finally:
driver.quit()
if __name__ == "__main__":
print(execute_driver())