selenium设置代理

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')

转载于:https://my.oschina.net/u/3826227/blog/1808804

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值