rendered paste body#!/usr/bin/python
import urllib, urllib2, re
from urlparse import urlparse
from sgmllib import SGMLParser
class FetchLinks(SGMLParser):
'''Use this + SGMLParser to fetch links from website'''
def reset(self):
SGMLParser.reset(self)
self.urls = []
def start_a(self, attrs):
href = [v for k, v in attrs if k=='href']
if href:
self.urls.extend(href)
def linkCheck(link):
'''Process links to add host or strip javascript out'''
if link[0] == 'j':
p = re.compile(".*?javascript:.*?\'(http:.*?)\'.*", re.IGNORECASE)
URL = p.sub(r'\1', link)
if URL.find('http') == -1:
URL = ''
else:
return URL
if link[0] == '/':
URL = rootURL + link
return URL
else:
URL = link
return URL
rootURL = 'http://guide.real.com'
openURL = urllib.urlopen(rootURL)
fetchURLs = FetchLinks()
fetchURLs.feed(openURL.read())
openURL.close()
fetchURLs.close()
for URL in fetchURLs.urls:
try:
print URL
print linkCheck(URL)
urllib2.urlopen(linkCheck(URL))
except urllib2.HTTPError, e:
if e.code == 401:
print 'Not Authorized'
if e.code == 404:
print 'Not Found'
if e.code == 503:
print 'Service Unavailable'
else:
print 'Succeeded'