나는 약간 파고 그 기능이 있다는 것을 알았지 만 노출되지 않았습니다. 그래서 그것을 패치하기위한 편리한 원숭이 렌치가 필요합니다. 이 기능이 webdriver 호출에서 완전히 노출되기 전까지는 저에게 맞는 해결책이 있습니다.
EDIT : 이제 service_args가 노출 된 것처럼 보이지만 더 이상 원숭이 패치를 사용하여 프록시를 사용하지 않아도됩니다. @ alex-czech 대답 사용법을 참조하십시오.
from selenium import webdriver
from selenium.webdriver.phantomjs.service import Service as PhantomJSService
phantomjs_path = '/usr/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs'
# monkey patch Service temporarily to include desired args
class NewService(PhantomJSService):
def __init__(self, *args, **kwargs):
service_args = kwargs.setdefault('service_args', [])
service_args += [
'--proxy=localhost:8080',
'--proxy-type=http',
]
super(NewService, self).__init__(*args, **kwargs)
webdriver.phantomjs.webdriver.Service = NewService
# init the webdriver
self.driver = webdriver.PhantomJS(phantomjs_path)
# undo monkey patch
webdriver.phantomjs.webdriver.Service = PhantomJSService
특히 다음과 같은 설정이 유용합니다. 특히로드하는 데 시간이 오래 걸릴 수있는 프록시를 사용할 때 특히 유용합니다.
max_wait = 60
self.driver.set_window_size(1024, 768)
self.driver.set_page_load_timeout(max_wait)
self.driver.set_script_timeout(max_wait)