如何将基于Chromedriver的Selenium代理爬虫改为兼容Geckodriver?
将代理爬虫代码适配为Firefox/Geckodriver
要把你的Chrome驱动爬虫改成兼容Firefox,只需要调整驱动相关的部分,核心爬取逻辑完全不用改,具体操作如下:
修改步骤
- 替换自动安装库:把
chromedriver_autoinstaller换成geckodriver_autoinstaller,先执行安装命令:pip install geckodriver-autoinstaller - 替换驱动初始化代码:将
webdriver.Chrome()改为webdriver.Firefox() - 移除Chrome相关的导入和自动安装代码,换成Firefox对应的内容
完整修改后的代码
from selenium import webdriver from selenium.webdriver.common.by import By import geckodriver_autoinstaller # pip install geckodriver-autoinstaller # 自动安装并适配对应版本的Geckodriver geckodriver_autoinstaller.install() driver = webdriver.Firefox() # 获取免费代理(这部分逻辑完全不变) def get_free_proxies(driver): driver.get('https://sslproxies.org') table = driver.find_element(By.TAG_NAME, 'table') thead = table.find_element(By.TAG_NAME, 'thead').find_elements(By.TAG_NAME, 'th') tbody = table.find_element(By.TAG_NAME, 'tbody').find_elements(By.TAG_NAME, 'tr') headers = [] for th in thead: headers.append(th.text.strip()) proxies = [] for tr in tbody: proxy_data = {} tds = tr.find_elements(By.TAG_NAME, 'td') for i in range(len(headers)): proxy_data[headers[i]] = tds[i].text.strip() proxies.append(proxy_data) return proxies free_proxies = get_free_proxies(driver)
说明:你代码里的元素定位用的是Selenium标准的By类方法,这部分在Chrome和Firefox下通用,所以爬取逻辑不需要做任何改动,仅替换驱动相关的初始化和自动安装部分即可。
内容的提问来源于stack exchange,提问作者tormaoen
相关产品推荐
相关产品推荐

