2019独角兽企业重金招聘Python工程师标准>>>
selenium + PhantomJS 添加代理;
不使用代理代打开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')
通过输出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')