python - 将 selenium chrome 与非本地代理一起使用

标签 python selenium

import scrapy
from scrapy.crawler import CrawlerProcess
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.proxy import Proxy, ProxyType
class FooSpider(scrapy.Spider):
    name = 'foo'

    start_urls = ["https://www.whatismybrowser.com/"]
    index=1

    def __init__(self, *args, **kwargs):
        super(FooSpider, self).__init__(*args, **kwargs)
        self.download_delay = 0.25
        chrome_options = Options()  # Initializing Chrome
        #chrome_options.add_argument("--headless")
        chrome_options.add_argument('--ignore-certificate-errors')
        chrome_options.add_argument('--ignore-ssl-errors')
        IP = '176.31.69.183' # random free proxy from net
        PORT = 8080
        prox = Proxy()
        prox.proxy_type = ProxyType.MANUAL
        prox.http_proxy = f'{IP}:{PORT}'
        prox.socks_proxy = f'{IP}:{PORT}'
        prox.ssl_proxy = f'{IP}:{PORT}'
        capabilities = webdriver.DesiredCapabilities.CHROME
        prox.add_to_capabilities(capabilities)
        self.browser = webdriver.Chrome(executable_path="/home/timmy/Downloads/chromedriver",options=chrome_options, desired_capabilities=capabilities)
        #self.browser.implicitly_wait(60) # 

    def parse(self,response):
        self.browser.get(response.url)
        data= self.random_data()
        print(data)

process = CrawlerProcess({'LOG_LEVEL':'INFO',})
process.crawl(FooSpider)
spider = next(iter(process.crawlers)).spider
process.start()

这是我遇到的错误

引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.InvalidArgumentException:消息:无效参数:无法解析功能:代理 来自无效参数:指定“socksProxy”需要“socksVersion”的整数 我从SSlproxies获得代理我正在尝试使用它,我正在使用这个问题的答案 running-selenium-webdriver-with-a-proxy-in-python但我收到了上面的错误

我该如何解决?

最佳答案

您正在使用旧的 Chrome 代理语法。这是设置无需身份验证的代理服务器的方法。

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://ipaddress:port')
driver = webdriver.Chrome(chrome_options=chrome_options)

关于python - 将 selenium chrome 与非本地代理一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56683265/

相关文章:

python - 如何在jupyter笔记本中指定单元格执行

python - 通过 Python 日志记录模块将意外错误记录到文件中

java - Selenium 无法识别 IE 中新打开的浏览器上的元素

ajax - Grails + Selenium-rc-提交AJAX表单

python - 将字典中每个键的多个值相加?

Python 字典语法,有一个 for 条件

python - Django 中的 URL 路径参数与查询参数

javascript - 如何使用 selenium 驱动程序选择最后一个 'li',该值在 'Ul' 中每次运行时都会动态变化

java - Selenium sendKeys() 对于 Chrome、Firefox 和 Safari 的不同行为

python-3.x - 如何从 PDF 嵌入 HTML 的 URL 下载 PDF 文件?