Selenium
Selenium是一个有助自动化网络浏览器网站测试互动等的工具。当您需要与浏览器互动以执行一些任务时,它非常实用,例如点击按钮、滚动等。即使 Selenium 主要用于网站测试,您亦可用它来进行网络抓取,因为它有助在网站上找到所需的公共数据。
要将 Selenium 集成到 IPHTML 代理,请遵循以下说明操作:
首先,您需要安装 Selenium Wire,以扩展 Selenium 的 Python 绑定,因为使用默认的 Selenium 模块来实现需要认证的代理会使整个过程变得复杂。您可以使用 pip 命令来执行:
pip install selenium-wire
代理身份验证
设置好后,您便可进入下一个部分 – 代理认证。您会被提示指定您的账户凭证来使代理运作。
USERNAME = "your_username"
PASSWORD = "your_password"
ENDPOINT = "server.iphtml.biz:15000"
您需要用您代理用户的用户名和密码调整 your_username 和 your_password字段。
测试代理服务器连接
如果您需要检查代理是否在工作,则应该访问 ipinfo.io。如果一切工作正常,它将返回您正在使用的代理的 IP 地址。
检查代理是否运行:
try: driver.get("https://ipinfo.io/") return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}' finally: driver.quit()
IPHTML 的住宅代理与 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 = "server.iphtml.biz:15000" 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://ipinfo.io/") return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}' finally: driver.quit() if __name__ == "__main__": print(execute_driver())