Automatically exported from code.google.com/p/planningalerts
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 
 

91 rinda
2.8 KiB

  1. import urllib2
  2. import urllib
  3. import urlparse
  4. import datetime, time
  5. from BeautifulSoup import BeautifulSoup
  6. from PlanningUtils import PlanningApplication, \
  7. PlanningAuthorityResults, \
  8. getPostcodeFromText
  9. date_format = "%d/%m/%Y"
  10. class MedwayParser:
  11. comment_email_address = "planning.representations@medway.gov.uk"
  12. def __init__(self, *args):
  13. self.authority_name = "Medway Council"
  14. self.authority_short_name = "Medway"
  15. self.base_url = "http://www.medway.gov.uk/index/environment/planning/planapp/planonline.htm"
  16. self._split_base_url = urlparse.urlsplit(self.base_url)
  17. self._results = PlanningAuthorityResults(self.authority_name, self.authority_short_name)
  18. def getResultsByDayMonthYear(self, day, month, year):
  19. search_date = datetime.date(year, month, day)
  20. search_date_string = search_date.strftime(date_format)
  21. "appstat=&decision=&appdec=&ward=&parish=&dadfrom=&dadto=&davfrom=01%2F06%2F2008&davto=02%2F06%2F2008&searchbut=Search"
  22. search_data = urllib.urlencode(
  23. [("searchtype", "1"),
  24. ("appstat", ""),
  25. ("decision", ""),
  26. ("appdec", ""),
  27. ("ward", ""),
  28. ("parish", ""),
  29. ("dadfrom", ""),
  30. ("dadto", ""),
  31. ("davfrom", search_date_string),
  32. ("davto", search_date_string),
  33. ("searchbut", "Search"),
  34. ]
  35. )
  36. split_search_url = self._split_base_url[:3] + (search_data, '')
  37. search_url = urlparse.urlunsplit(split_search_url)
  38. response = urllib2.urlopen(search_url)
  39. soup = BeautifulSoup(response.read())
  40. results_table = soup.find(text="Application No").parent.parent.parent
  41. trs = results_table.findAll("tr")[1:]
  42. tr_counter = 0
  43. while tr_counter < len(trs):
  44. tr = trs[tr_counter]
  45. if tr_counter % 2 == 0:
  46. application = PlanningApplication()
  47. application.date_received = search_date
  48. application.comment_url = self.comment_email_address
  49. tds = tr.findAll("td")
  50. application.info_url = urlparse.urljoin(self.base_url, tr.a['href'])
  51. application.council_reference = tr.a.string.strip()
  52. application.address = tds[1].string.strip()
  53. application.postcode = getPostcodeFromText(application.address)
  54. application.description = tds[2].string.strip()
  55. self._results.addApplication(application)
  56. tr_counter += 1
  57. return self._results
  58. def getResults(self, day, month, year):
  59. return self.getResultsByDayMonthYear(int(day), int(month), int(year)).displayXML()
  60. if __name__ == '__main__':
  61. parser = MedwayParser()
  62. print parser.getResults(02,6,2008)