問題

我想檢查某個網站是否存在,這就是我正在做的:

 user_agent = 'Mozilla/20.0.1 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent':user_agent }
link = "http://www.abc.com"
req = urllib2.Request(link, headers = headers)
page = urllib2.urlopen(req).read() - ERROR 402 generated here!
 

如果頁面不存在(錯誤402或任何其他錯誤),我可以在page = ...行中做些什麼來確保我正在閱讀的頁面退出?

  最佳答案

您可以使用HEAD請求而不是GET.它只下載標題,而不是內容.然後您可以從標題中檢查響應狀態.

 import httplib
c = httplib.HTTPConnection('www.example.com')
c.request("HEAD", '')
if c.getresponse().status == 200:
   print('web site exists')
 

或者你可以使用urllib2

 import urllib2
try:
    urllib2.urlopen('http://www.example.com/some_page')
except urllib2.HTTPError, e:
    print(e.code)
except urllib2.URLError, e:
    print(e.args)
 

或者你可以使用requests

 import requests
request = requests.get('http://www.example.com')
if request.status_code == 200:
    print('Web site exists')
else:
    print('Web site does not exist') 
 

  相同標籤的其他問題

pythonhtmlurlopen