我正在用Python編寫一個腳本,它應該確定它是否具有Internet訪問權限。Python urllib緩存
import urllib
CHECK_PAGE = "http://64.37.51.146/check.txt"
CHECK_VALUE = "true\n"
PROXY_VALUE = "Privoxy"
OFFLINE_VALUE = ""
page = urllib.urlopen(CHECK_PAGE)
response = page.read()
page.close()
if response.find(PROXY_VALUE) != -1:
urllib.getproxies = lambda x = None: {}
page = urllib.urlopen(CHECK_PAGE)
response = page.read()
page.close()
if response != CHECK_VALUE:
print "'" + response + "' != '" + CHECK_VALUE + "'" #
else:
print "You are online!"
我在我的電腦上使用了一個代理,所以正確的代理處理很重要。如果它無法通過代理連接到互聯網,它應該繞過代理並查看它是否卡在登錄頁面(我使用的許多公共熱點都是這樣)。使用該代碼,如果我沒有連接到互聯網,則第一個read()將返回代理的錯誤頁面。但是當我在那之後繞過代理時,我得到了相同的頁面。如果我在提出任何請求之前繞過代理服務器,我會收到像我應該的錯誤。我認爲Python是第一次緩存頁面。
我該如何強制Python清除它的緩存(或者這是一些其他問題)?
考慮使用urllib2 - http://docs.python.org/library/urllib2.html#urllib2.urlopen – gimel