最近遇到phantomjs動態更換ip的功能,在知乎上看到一篇不錯的文章,順手記下來以備后用 phantomjs selenium 如何動態修改代理?
可以這樣做(Python代碼):
# 不使用代理代打開ip138 browser=webdriver.PhantomJS(PATH_PHANTOMJS) browser.get('http://1212.ip138.com/ic.asp') print('1: ',browser.session_id) print('2: ',browser.page_source) print('3: ',browser.get_cookies()) # 利用DesiredCapabilities(代理設置)參數值,重新打開一個sessionId,我看意思就相當於瀏覽器清空緩存后,加上代理重新訪問一次url proxy=webdriver.Proxy() proxy.proxy_type=ProxyType.MANUAL proxy.http_proxy='1.9.171.51:800' # 將代理設置添加到webdriver.DesiredCapabilities.PHANTOMJS中 proxy.add_to_capabilities(webdriver.DesiredCapabilities.PHANTOMJS) browser.start_session(webdriver.DesiredCapabilities.PHANTOMJS) browser.get('http://1212.ip138.com/ic.asp') print('1: ',browser.session_id) print('2: ',browser.page_source) print('3: ',browser.get_cookies()) # 還原為系統代理 proxy=webdriver.Proxy() proxy.proxy_type=ProxyType.DIRECT proxy.add_to_capabilities(webdriver.DesiredCapabilities.PHANTOMJS) browser.start_session(webdriver.DesiredCapabilities.PHANTOMJS) browser.get('http://1212.ip138.com/ic.asp')
