From 10f3dbfb14c357e70055d76031bd0345abfc1759 Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Tue, 26 Apr 2022 19:36:56 -0700 Subject: [PATCH 1/1] Cleanup geocode. --- geocode.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/geocode.py b/geocode.py index 1ee7f20..023fe33 100644 --- a/geocode.py +++ b/geocode.py @@ -9,7 +9,7 @@ from typing import Dict, Optional import requests from bs4 import BeautifulSoup -from requests.utils import quote +from requests.utils import requote_uri logger = logging.getLogger(__name__) @@ -22,14 +22,14 @@ def geocode_address(address: str) -> Optional[Dict[str, str]]: '5 SHELBERN DR, LINCROFT, NJ, 07738' """ - encoded_address = quote(address) url = 'https://geocoding.geo.census.gov/geocoder/geographies/onelineaddress' - url += f'?address={encoded_address}' + url += f'?address={address}' url += '&layers=all&benchmark=4&vintage=4' + url = requote_uri(url) logger.debug('GET: %s', url) r = requests.get(url) if r.status_code != 200: - logger.error(f'Unexpected response code {r.status_code}, wanted 200. Fail.') + logger.error('Unexpected response code %d, wanted 200. Fail.', r.status_code) return None else: soup = BeautifulSoup(r.text, 'html.parser') @@ -40,7 +40,8 @@ def geocode_address(address: str) -> Optional[Dict[str, str]]: out = {} for line in output.split('\n'): if re.match(r'.*: *$', line): - label = line[:-2].strip() + line = line.strip() + label = line[:-1] logger.debug('Label is: "%s"', label) else: if label: -- 2.45.2