Skip to content

Instantly share code, notes, and snippets.

@louiemonte
Created June 19, 2015 18:40
Show Gist options
  • Save louiemonte/0e5b047d7e5f26b26505 to your computer and use it in GitHub Desktop.
Save louiemonte/0e5b047d7e5f26b26505 to your computer and use it in GitHub Desktop.
Get the coordinates for all the uber cities
# Creates an Array with Uber city url's and their corresponding coordinates
import requests
from lxml import html
import re
page = requests.get("https://www.uber.com/cities")
tree = html.fromstring(page.text)
# Add code here to automatically find the urls
url_list = [
"http://www.uber.com/cities/akron",
"http://www.uber.com/cities/albuquerque",
"http://www.uber.com/cities/amarillo",
"http://www.uber.com/cities/ann-arbor",
"http://www.uber.com/cities/asheville-nc",
"http://www.uber.com/cities/athens",
"http://www.uber.com/cities/atlanta",
"http://www.uber.com/cities/montgomery",
"http://www.uber.com/cities/augusta",
"http://www.uber.com/cities/austin",
"http://www.uber.com/cities/bakersfield",
"http://www.uber.com/cities/baltimore",
"http://www.uber.com/cities/baton-rouge",
"http://www.uber.com/cities/peoria-il",
"http://www.uber.com/cities/boise",
"http://www.uber.com/cities/boston",
"http://www.uber.com/cities/west-palm-beach",
"http://www.uber.com/cities/burlington",
"http://www.uber.com/cities/cedar-rapids",
"http://www.uber.com/cities/daytona-beach",
"http://www.uber.com/cities/champaign",
"http://www.uber.com/cities/charleston",
"http://www.uber.com/cities/charlotte",
"http://www.uber.com/cities/charlottesville-va",
"http://www.uber.com/cities/chattanooga",
"http://www.uber.com/cities/chicago",
"http://www.uber.com/cities/cincinnati",
"http://www.uber.com/cities/cleveland",
"http://www.uber.com/cities/coeur-dalene",
"http://www.uber.com/cities/college-station",
"http://www.uber.com/cities/columbia-mo",
"http://www.uber.com/cities/columbia",
"http://www.uber.com/cities/columbus",
"http://www.uber.com/cities/connecticut",
"http://www.uber.com/cities/corpus-christi",
"http://www.uber.com/cities/dallas",
"http://www.uber.com/cities/dayton",
"http://www.uber.com/cities/wilmington-de",
"http://www.uber.com/cities/denver",
"http://www.uber.com/cities/des-moines",
"http://www.uber.com/cities/detroit",
"http://www.uber.com/cities/eastern-idaho",
"http://www.uber.com/cities/eastern-north-carolina",
"http://www.uber.com/cities/edmonton",
"http://www.uber.com/cities/el-paso",
"http://www.uber.com/cities/erie",
"http://www.uber.com/cities/fargo",
"http://www.uber.com/cities/fayetteville-ar",
"http://www.uber.com/cities/fayetteville",
"http://www.uber.com/cities/flagstaff",
"http://www.uber.com/cities/flint",
"http://www.uber.com/cities/florida-keys",
"http://www.uber.com/cities/fort-myers",
"http://www.uber.com/cities/fort-wayne",
"http://www.uber.com/cities/fresno",
"http://www.uber.com/cities/gainesville",
"http://www.uber.com/cities/grand-rapids",
"http://www.uber.com/cities/maine",
"http://www.uber.com/cities/annapolis",
"http://www.uber.com/cities/green-bay",
"http://www.uber.com/cities/greenville-sc",
"http://www.uber.com/cities/guadalajara",
"http://www.uber.com/cities/gulfportbiloxi",
"http://www.uber.com/cities/halifax",
"http://www.uber.com/cities/virginia-beach",
"http://www.uber.com/cities/hamptons",
"http://www.uber.com/cities/harrisburg",
"http://www.uber.com/cities/honolulu",
"http://www.uber.com/cities/houston",
"http://www.uber.com/cities/indianapolis",
"http://www.uber.com/cities/inland-empire",
"http://www.uber.com/cities/jackson",
"http://www.uber.com/cities/jacksonville",
"http://www.uber.com/cities/kalamazoo",
"http://www.uber.com/cities/kansas-city",
"http://www.uber.com/cities/knoxville",
"http://www.uber.com/cities/lafayette-la",
"http://www.uber.com/cities/lancaster-pa",
"http://www.uber.com/cities/lansing",
"http://www.uber.com/cities/las-cruces",
"http://www.uber.com/cities/lawrence",
"http://www.uber.com/cities/allentown",
"http://www.uber.com/cities/lexington",
"http://www.uber.com/cities/lincoln",
"http://www.uber.com/cities/little-rock",
"http://www.uber.com/cities/los-angeles",
"http://www.uber.com/cities/louisville",
"http://www.uber.com/cities/lubbock",
"http://www.uber.com/cities/madison",
"http://www.uber.com/cities/manhattan",
"http://www.uber.com/cities/maui",
"http://www.uber.com/cities/memphis",
"http://www.uber.com/cities/mexico-city",
"http://www.uber.com/cities/miami",
"http://www.uber.com/cities/milwaukee",
"http://www.uber.com/cities/minneapolis",
"http://www.uber.com/cities/mobile-al",
"http://www.uber.com/cities/modesto",
"http://www.uber.com/cities/monterrey",
"http://www.uber.com/cities/montreal",
"http://www.uber.com/cities/myrtle-beach",
"http://www.uber.com/cities/nw-indiana",
"http://www.uber.com/cities/nashville",
"http://www.uber.com/cities/manchester-nh",
"http://www.uber.com/cities/new-jersey",
"http://www.uber.com/cities/new-jersey-shore",
"http://www.uber.com/cities/new-orleans",
"http://www.uber.com/cities/new-york",
"http://www.uber.com/cities/ocala-fl",
"http://www.uber.com/cities/oklahoma-city",
"http://www.uber.com/cities/omaha",
"http://www.uber.com/cities/orange-county",
"http://www.uber.com/cities/orlando",
"http://www.uber.com/cities/ottawa",
"http://www.uber.com/cities/outer-banks-nc",
"http://www.uber.com/cities/oxford",
"http://www.uber.com/cities/palm-springs",
"http://www.uber.com/cities/panama-city-fl",
"http://www.uber.com/cities/pensacola-fl",
"http://www.uber.com/cities/philadelphia",
"http://www.uber.com/cities/phoenix",
"http://www.uber.com/cities/greensboro",
"http://www.uber.com/cities/pittsburgh",
"http://www.uber.com/cities/portland",
"http://www.uber.com/cities/portland-me",
"http://www.uber.com/cities/providence",
"http://www.uber.com/cities/quebec-city",
"http://www.uber.com/cities/queretaro",
"http://www.uber.com/cities/raleigh",
"http://www.uber.com/cities/reading-pa",
"http://www.uber.com/cities/richmond",
"http://www.uber.com/cities/roanoke",
"http://www.uber.com/cities/rockford",
"http://www.uber.com/cities/sacramento",
"http://www.uber.com/cities/salem",
"http://www.uber.com/cities/salt-lake-city",
"http://www.uber.com/cities/san-antonio",
"http://www.uber.com/cities/san-diego",
"http://www.uber.com/cities/san-francisco",
"http://www.uber.com/cities/san-luis-obispo",
"http://www.uber.com/cities/santa-barbara",
"http://www.uber.com/cities/santa-fe",
"http://www.uber.com/cities/sarasota",
"http://www.uber.com/cities/savannah",
"http://www.uber.com/cities/seattle",
"http://www.uber.com/cities/south-bend",
"http://www.uber.com/cities/spokane",
"http://www.uber.com/cities/springfield-il",
"http://www.uber.com/cities/st-louis",
"http://www.uber.com/cities/state-college",
"http://www.uber.com/cities/stillwater",
"http://www.uber.com/cities/tacoma",
"http://www.uber.com/cities/tallahassee",
"http://www.uber.com/cities/tampa",
"http://www.uber.com/cities/tijuana",
"http://www.uber.com/cities/toledo",
"http://www.uber.com/cities/topeka",
"http://www.uber.com/cities/toronto",
"http://www.uber.com/cities/tucson",
"http://www.uber.com/cities/tulsa",
"http://www.uber.com/cities/tuscaloosa",
"http://www.uber.com/cities/vancouver-wa",
"http://www.uber.com/cities/ventura",
"http://www.uber.com/cities/waco",
"http://www.uber.com/cities/washington-dc",
"http://www.uber.com/cities/springfield-ma",
"http://www.uber.com/cities/wichita",
"http://www.uber.com/cities/wilkesbarre-scranton",
"http://www.uber.com/cities/wilmington-nc",
"http://www.uber.com/cities/worcester",
"http://www.uber.com/cities/yuma",
]
numberofcities= len(url_list)
# Create an empty array with as many groups as the number of uber cities (urls)
uber_coordinates_list= [x[:] for x in [[' ']*2]*numberofcities]
count = -1
first = '[[['
last = ']}}]'
for url in url_list:
count= count+1
print count
page = requests.get(url)
page_source = page.text
def find_between( page_source, first, last ):
try:
start = page_source.index( first ) + len( first )
end = page_source.index( last, start )
return page_source[start:end]
except ValueError:
return ""
def find_between_r( page_source, first, last ):
try:
start = page_source.rindex( first ) + len( first )
end = page_source.rindex( last, start )
return page_source[start:end]
except ValueError:
return ""
coordinates = "[["+find_between( page_source, "[[[", "]}}]" )
# Add the URL to the Array
uber_coordinates_list[count][0] = url
# Add the prices to each section of the Array
uber_coordinates_list[count][1] = coordinates
print uber_coordinates_list
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment