| 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. | #!/usr/bin/python """Extract list of URLs in a web page This program is part of "Dive Into Python", a free Python book for experienced programmers. Visit http://diveintopython.org/ for the latest version. """ __author__ = "Mark Pilgrim ([email protected])" __version__ = "$Revision: 1.2 $" __date__ = "$Date: 2004/05/05 21:57:19 $" __copyright__ = "Copyright (c) 2001 Mark Pilgrim" __license__ = "Python" from sgmllib import SGMLParser import sys if len(sys.argv) != 2: print "\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++" print "Extract links form webpage - v.0.1 " print "+++++++++++++++++++++++++++++++++++++++++++++++++++++" print "\nUsage : ./list-urls.py <web-page> " print "Eg: ./list-urls.py http://www.whoppix.net " print "\n+++++++++++++++++++++++++++++++++++++++++++++++++++++" sys.exit(1) class URLLister(SGMLParser): 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) if __name__ == "__main__": import urllib print "\n##########################################################" print "# #" print "# Extract URLS from a web page #" print "# [email protected] #" print "# #" print "##########################################################\n" link = sys.argv[1] try: usock = urllib.urlopen(link) parser = URLLister() parser.feed(usock.read()) parser.close() usock.close() for url in parser.urls: print url except: print "Could not reach "+ sys.argv[1]+ " !" print "Did you remember to put an http:// before the domain name?" |