By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
458,222 Members | 1,079 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 458,222 IT Pros & Developers. It's quick & easy.

how to check if URL cannot be opened

P: n/a
Im new to python. So I was hoping someone could provide the following.
How would I go about checking if a user can be opened. For example if
user provides www.x.com, how would I check if there is such a url?
What methods would I need to invoke?

Thank you very much for your time
Jul 18 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Hi John,
Im new to python. So I was hoping someone could provide the following.
How would I go about checking if a user can be opened. For example if
user provides www.x.com, how would I check if there is such a url?
What methods would I need to invoke?


This is the code I use with python greater than 2.3.3:

import urllib2
import socket

def checkUrl(url, timeout=5, SSL=0):
"""Checks an url for a python version greater
than 2.3.3.
"""

defTimeOut=socket.getdefaulttimeout()
socket.setdefaulttimeout(timeout)
found=1
try:
urllib2.urlopen(url)
except (urllib2.HTTPError, urllib2.URLError,
socket.error, socket.sslerror):
found=0
socket.setdefaulttimeout(defTimeOut)
return found

Please note that I use the setdefaulttimeout method of the module socket
because sometimes, specially if you type invalid ssl urls, the main
thread will take a long time till you see an answer. With the timeout,
it will wait for 5 seconds, then it will return. I also use the urllib2
because its urlopen method is better than the original of urllib: Some
webservers like zope, return an error page when an url isn't found; with
urllib.urlopen, this page will be considered as a normal page. On the
other hand, the urllib2.urlopen will raise an exception.

Regards,
Josef
Jul 18 '05 #2

P: n/a
> This is the code I use with python greater than 2.3.3:

import urllib2
import socket

def checkUrl(url, timeout=5, SSL=0):
"""Checks an url for a python version greater
than 2.3.3.
"""

defTimeOut=socket.getdefaulttimeout()
socket.setdefaulttimeout(timeout)
found=1
try:
urllib2.urlopen(url)
except (urllib2.HTTPError, urllib2.URLError,
socket.error, socket.sslerror):
found=0
socket.setdefaulttimeout(defTimeOut)
return found

Ops, sorry, the SSL parameter isn't being used there, so you can delete it.
Jul 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.