Package concurrent_tree_crawler :: Package html_multipage_navigator :: Module web_browser
[hide private]
[frames] | no frames]

Source Code for Module concurrent_tree_crawler.html_multipage_navigator.web_browser

 1  import mechanize 
 2   
3 -class AbstractWebBrowser:
4 """An abstract functionality of a web browser""" 5
6 - def open(self, address):
7 """Open a web page with a given address""" 8 raise NotImplementedError
9
10 - def response(self):
11 """ 12 Return a copy of the currently opened web page 13 14 @rtype: file-like object 15 """ 16 raise NotImplementedError
17
18 - def back(self, steps=1):
19 """Go back C{steps} steps in history""" 20 raise NotImplementedError
21
22 -class AbstractWebBrowserCreator:
23 """The 'Creator' class from the Factory Method design pattern""" 24
25 - def create(self):
26 """ 27 Create a browser. This method has to be thread-safe since it is 28 called as the method of the same object in different threads. 29 30 @rtype: L{AbstractWebBrowser} 31 """ 32 raise NotImplementedError
33 34
35 -class MechanizeBrowser(AbstractWebBrowser):
36 """The default browser. It uses C{mechanize} library""" 37
38 - def __init__(self):
39 self.__br = mechanize.Browser()
40
41 - def open(self, address):
42 self.__br.open(address) #PyLint ignore unneeded warning: IGNORE:E1102
43
44 - def response(self):
45 return self.__br.response() #PyLint ignore unneeded warning: IGNORE:E1102
46
47 - def back(self, steps=1):
48 self.__br.back(steps) #PyLint ignore unneeded warning: IGNORE:E1102
49
50 -class MechanizeBrowserCreator(AbstractWebBrowserCreator):
51 - def create(self):
52 return MechanizeBrowser()
53