我在公司的代理人后面。并且为了访问某些站点内部,我必须先登录到特定站点。问题是如果我从IE或FF登录到这个特定的站点,那么我可以访问站点内的站点,不一定是从我登录的同一个浏览器。
例如:我从FF登录,然后我可以从IE访问内部网站,反之亦然(我从内部网站获得ping
回复)。
但是,当我使用mechanize
登录并保持会话处于活动状态时(使用sleep
),我无法访问任何站点内部(我得到ping
超时)
为什么机械化会话无法识别?
更新:我的代码
import mechanize
import cookielib
from time import sleep
loginURL = '<loginURL>'
URL = '<URL>'
browser = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
browser.set_cookiejar(cj)
#Browser Options
browser.set_handle_robots(False)
browser.set_handle_equiv(True)
browser.set_handle_gzip(True)
browser.set_handle_redirect(True)
browser.set_handle_referer(True)
#User-agent
browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:43.0) Gecko/20100101 Debian 3.2.73-2+deb7u1 Firefox/43.0')]
browser.open(loginURL)
browser.select_form(nr = 0)
browser.form['username'] = '<username>'
browser.form['password'] = '<password>'
login = browser.submit()
#Checking Successful login
if browser.geturl()== URL:
print 'Successful Login'
print 'keeping session...'
sleep(360)
#Checking that session was kept alive
open = browser.open(URL)
sleep (5)
if browser.geturl()== URL:
print 'Session Kept Alive!'
#print open.read()