selenium使用代理

来源:互联网 发布:淘宝秒杀需要登录吗 编辑:程序博客网 时间:2024/06/15 10:02
selenium + PhantomJS 添加代理;
# 不使用代理代打开ip138browser=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,我看意思就相当于浏览器清空缓存后,加上代理重新访问一次urlproxy=webdriver.Proxy()proxy.proxy_type=ProxyType.MANUALproxy.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.DIRECTproxy.add_to_capabilities(webdriver.DesiredCapabilities.PHANTOMJS)browser.start_session(webdriver.DesiredCapabilities.PHANTOMJS)browser.get('http://1212.ip138.com/ic.asp')

通过输出sessionid、cookies,可以发现,这两者都改变了。如果你要保留第一次访问的cookies,需要自己获取第一次cookies,然后在第二次访问前先delete_all_cookies, 然后add_cookie ,不要直接add_cookie,不然会产生两个name一样的cookie。

add_cookie时,phantomjs需要name/value/domain/path 写全(firefox只需要name和value),不然在2.11phantomjs中会发生异常"selenium.common.exceptions.WebDriverException: Message: You may only set cookies for the current domain"

selenium + Chrome 添加代理
# chromeOptions = webdriver.ChromeOptions()
# chromeOptions.add_argument('--proxy-server= http://proxy:port'
# self.driver = webdriver.Chrome(chrome_options=chromeOptions, executable_path='/usr/local/bin/phantomjs/bin/chromedriver')

原创粉丝点击