|
@@ -41,6 +41,9 @@ class SwiftLGParser: |
|
|
info_path = "WPHAPPDETAIL.DisplayUrl?theApnID=%s" |
|
|
info_path = "WPHAPPDETAIL.DisplayUrl?theApnID=%s" |
|
|
comment_path ="wphmakerep.displayURL?ApnID=%s" |
|
|
comment_path ="wphmakerep.displayURL?ApnID=%s" |
|
|
|
|
|
|
|
|
|
|
|
def _fixHTML(self, html): |
|
|
|
|
|
return html |
|
|
|
|
|
|
|
|
def _findResultsTable(self, soup): |
|
|
def _findResultsTable(self, soup): |
|
|
"""Unless there is just one table in the page, the resuts table, |
|
|
"""Unless there is just one table in the page, the resuts table, |
|
|
override this in a subclass.""" |
|
|
override this in a subclass.""" |
|
@@ -84,6 +87,10 @@ class SwiftLGParser: |
|
|
response = urllib2.urlopen(self.search_url, post_data) |
|
|
response = urllib2.urlopen(self.search_url, post_data) |
|
|
contents = response.read() |
|
|
contents = response.read() |
|
|
|
|
|
|
|
|
|
|
|
# Let's give scrapers the change to tidy up any rubbish - I'm looking |
|
|
|
|
|
# at you Cannock Chase |
|
|
|
|
|
contents = self._fixHTML(contents) |
|
|
|
|
|
|
|
|
# Check for the no results warning |
|
|
# Check for the no results warning |
|
|
if not contents.count("No Matching Applications Found"): |
|
|
if not contents.count("No Matching Applications Found"): |
|
|
soup = BeautifulSoup.BeautifulSoup(contents) |
|
|
soup = BeautifulSoup.BeautifulSoup(contents) |
|
@@ -193,13 +200,17 @@ class SloughParser(SwiftLGParser): |
|
|
def _findTRs(self, results_table): |
|
|
def _findTRs(self, results_table): |
|
|
return results_table.findAll("tr")[2:] |
|
|
return results_table.findAll("tr")[2:] |
|
|
|
|
|
|
|
|
|
|
|
class CannockChaseParser(SwiftLGParser): |
|
|
|
|
|
def _fixHTML(self, html): |
|
|
|
|
|
return html.replace('</tr class="tablebody">', '</tr>') |
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
if __name__ == '__main__': |
|
|
# parser = SwiftLGParser("Boston Borough Council", "Boston", "http://195.224.121.199/swiftlg/apas/run/") |
|
|
# parser = SwiftLGParser("Boston Borough Council", "Boston", "http://195.224.121.199/swiftlg/apas/run/") |
|
|
# parser = SwiftLGParser("Dudley", "Dudley", "http://www2.dudley.gov.uk/swiftlg/apas/run/") |
|
|
# parser = SwiftLGParser("Dudley", "Dudley", "http://www2.dudley.gov.uk/swiftlg/apas/run/") |
|
|
# parser = EastHertsParser("East Hertfordshire", "East Herts", "http://e-services.eastherts.gov.uk/swiftlg/apas/run/") |
|
|
# parser = EastHertsParser("East Hertfordshire", "East Herts", "http://e-services.eastherts.gov.uk/swiftlg/apas/run/") |
|
|
# parser = GwyneddParser("Gwynedd", "Gwynedd", "http://www.gwynedd.gov.uk/swiftlg/apas/run/") |
|
|
# parser = GwyneddParser("Gwynedd", "Gwynedd", "http://www.gwynedd.gov.uk/swiftlg/apas/run/") |
|
|
# parser = IslingtonParser("Islington", "Islington", "https://www.islington.gov.uk/onlineplanning/apas/run/") |
|
|
# parser = IslingtonParser("Islington", "Islington", "https://www.islington.gov.uk/onlineplanning/apas/run/") |
|
|
parser = SwiftLGParser("Lake District", "Lake District", "http://www.lake-district.gov.uk/swiftlg/apas/run/") |
|
|
|
|
|
|
|
|
# parser = SwiftLGParser("Lake District", "Lake District", "http://www.lake-district.gov.uk/swiftlg/apas/run/") |
|
|
# parser = SwiftLGParser("Maidstone Borough Council", "Maidstone", "http://digitalmaidstone.co.uk/swiftlg/apas/run/") |
|
|
# parser = SwiftLGParser("Maidstone Borough Council", "Maidstone", "http://digitalmaidstone.co.uk/swiftlg/apas/run/") |
|
|
# parser = MoleValleyParser("Mole Valley", "Mole Valley", "http://www.molevalley.gov.uk/swiftlg/apas/run/") |
|
|
# parser = MoleValleyParser("Mole Valley", "Mole Valley", "http://www.molevalley.gov.uk/swiftlg/apas/run/") |
|
|
# parser = SwiftLGParser("Pembrokeshire County Council", "Pembrokeshire", "http://planning.pembrokeshire.gov.uk/swiftlg/apas/run/") |
|
|
# parser = SwiftLGParser("Pembrokeshire County Council", "Pembrokeshire", "http://planning.pembrokeshire.gov.uk/swiftlg/apas/run/") |
|
@@ -210,9 +221,9 @@ if __name__ == '__main__': |
|
|
# parser = MacclesfieldParser("Macclesfield", "Macclesfield", "http://www.planportal.macclesfield.gov.uk/swiftlg/apas/run/") |
|
|
# parser = MacclesfieldParser("Macclesfield", "Macclesfield", "http://www.planportal.macclesfield.gov.uk/swiftlg/apas/run/") |
|
|
# parser = SwiftLGParser("Daventry District Council", "Daventry", "http://62.231.149.150/swiftlg/apas/run/wphappcriteria.display") |
|
|
# parser = SwiftLGParser("Daventry District Council", "Daventry", "http://62.231.149.150/swiftlg/apas/run/wphappcriteria.display") |
|
|
# parser = SwiftLGParser("Warrington Borough Council", "Warrington", "http://212.248.237.123:8080/swiftlg/apas/run/wphappcriteria.display") |
|
|
# parser = SwiftLGParser("Warrington Borough Council", "Warrington", "http://212.248.237.123:8080/swiftlg/apas/run/wphappcriteria.display") |
|
|
# parser = SwiftLGParser("Cannock Chase District Council", "Cannock Chase", "http://planning.cannockchasedc.com/swiftlg/apas/run/wphappcriteria.display") |
|
|
|
|
|
|
|
|
parser = CannockChaseParser("Cannock Chase District Council", "Cannock Chase", "http://planning.cannockchasedc.com/swiftlg/apas/run/wphappcriteria.display") |
|
|
# parser = SwiftLGParser("London Borough of Enfield", "Enfield", "http://forms.enfield.gov.uk/swiftlg/apas/run/wphappcriteria.display") |
|
|
# parser = SwiftLGParser("London Borough of Enfield", "Enfield", "http://forms.enfield.gov.uk/swiftlg/apas/run/wphappcriteria.display") |
|
|
print parser.getResults(18,3,2009) |
|
|
|
|
|
|
|
|
print parser.getResults(12,6,2009) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# To Do: |
|
|
# To Do: |
|
|