Exemple #1
0
    "yelp_api.phone_search_query(phone='+13193375512')"))
response = yelp_api.phone_search_query(phone='+13193375512')
pprint(response)
print(
    '\n-------------------------------------------------------------------------\n'
)
"""
    Example business match query with the 'best' type.
    
    Business Match API: https://www.yelp.com/developers/documentation/v3/business_match
"""
print('***** search for business best match *****\n{}\n'.format(
    "yelp_api.business_match_query(name='Splash Cafe', city='Pismo Beach', state='CA')"
))
response = yelp_api.business_match_query(name='Splash Cafe',
                                         city='Pismo Beach',
                                         state='CA')
pprint(response)
print(
    '\n-------------------------------------------------------------------------\n'
)
"""
    Example business match query with the 'lookup' type.
    
    Business Match API: https://www.yelp.com/developers/documentation/v3/business_match
"""
print('***** search for business best match *****\n{}\n'.format(
    "yelp_api.business_match_query(name='Splash Cafe', city='Pismo Beach', state='CA')"
))
response = yelp_api.business_match_query(name='Splash Cafe',
                                         city='Pismo Beach',
Exemple #2
0
from yelpapi import YelpAPI

yelp_api = YelpAPI("Hp8pY32pxeXSNL8oAaQIRHT2cKs4A711Jn-5cJof-rSE1SicUkneft1NKY_gdHk8mJoCMVY7iZARi13lqYCgpz65MXqYwN6vBqYpAnBovBbxN45Vf-u0MNdjgMAvXHYx")
response = yelp_api.search_query(term='ice cream', location='berkley, ca')

print(response)
print("")


response = yelp_api.business_match_query(name='Splash Cafe',
                                         address1='197 Pomeroy Ave',
                                         city='Pismo Beach',
                                         state='CA',
                                         country='US',
                                         match_type='lookup')

print(response)
print("")

response = yelp_api.business_match_query(name='Splash Cafe',
                                         address1='197 Pomeroy Ave',
                                         city='Pismo Beach',
                                         state='CA',
                                         country='US',
                                         match_type='best')

print(response)

{'businesses': 
[{'id': '-08CAog7QCa1WF_YmINv1g', 'alias': 'icicles-berkeley', 'name': 'ICICLES', 'image_url': 'https://s3-media4.fl.yelpcdn.com/bphoto/Q_of7DakSDPMQHE8c-SMuQ/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/icicles-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 21, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}, {'alias': 'desserts', 'title': 'Desserts'}], 'rating': 4.5, 'coordinates': {'latitude': 37.871161, 'longitude': -122.2746576}, 'transactions': [], 'location': {'address1': '1812 University Ave', 'address2': 'Unit A', 'address3': '', 'city': 'Berkeley', 'zip_code': '94703', 'country': 'US', 'state': 'CA', 'display_address': ['1812 University Ave', 'Unit A', 'Berkeley, CA 94703']}, 'phone': '', 'display_phone': '', 'distance': 290.38177913418133}, 
{'id': 'GB2vRHTR0khHq28qoZFSjw', 'alias': 'iscream-berkeley', 'name': 'iScream', 'image_url': 'https://s3-media4.fl.yelpcdn.com/bphoto/twm6ydgJfTlnhImZjmTacw/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/iscream-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 384, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}, {'alias': 'coffee', 'title': 'Coffee & Tea'}, {'alias': 'waffles', 'title': 'Waffles'}], 'rating': 4.5, 'coordinates': {'latitude': 37.891644, 'longitude': -122.279387}, 'transactions': [], 'price': '$', 'location': {'address1': '1819 Solano Ave', 'address2': '', 'address3': '', 'city': 'Berkeley', 'zip_code': '94707', 'country': 'US', 'state': 'CA', 'display_address': ['1819 Solano Ave', 'Berkeley, CA 94707']}, 'phone': '+15103904491', 'display_phone': '(510) 390-4491', 'distance': 2589.0625089512687}, {'id': 'uwvhf3nO353A3Em5AEeO9Q', 'alias': 'gadani-berkeley', 'name': 'Gadani', 'image_url': 'https://s3-media1.fl.yelpcdn.com/bphoto/TheVOEMBUxYd97peX7KgKA/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/gadani-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 307, 'categories': [{'alias': 'coffee', 'title': 'Coffee & Tea'}, {'alias': 'waffles', 'title': 'Waffles'}, {'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 4.0, 'coordinates': {'latitude': 37.870612, 'longitude': -122.267907}, 'transactions': [], 'price': '$', 'location': {'address1': '139 Berkeley Sq', 'address2': None, 'address3': '', 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['139 Berkeley Sq', 'Berkeley, CA 94704']}, 'phone': '+15108221888', 'display_phone': '(510) 822-1888', 'distance': 668.3219621959456}, {'id': 'nNF1w9SIqX8ACB9JVCoQWg', 'alias': 'uji-time-dessert-berkeley', 'name': 'UJI Time Dessert', 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/iASe08fQ8pGkoH1zAhEhTw/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/uji-time-dessert-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 647, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 4.0, 'coordinates': {'latitude': 37.8638360387923, 'longitude': -122.258340208659}, 'transactions': [], 'price': '$', 'location': {'address1': '2575 Telegraph Ave', 'address2': '', 'address3': '', 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['2575 Telegraph Ave', 'Berkeley, CA 94704']}, 'phone': '+15106661008', 'display_phone': '(510) 666-1008', 'distance': 1562.8069323671116}, {'id': 'r7Ggh7ejuBWjT0TQPW-ypA', 'alias': 'cream-berkeley-5', 'name': 'CREAM', 'image_url': 'https://s3-media4.fl.yelpcdn.com/bphoto/bHNi2SYg9pISGecbPWreow/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/cream-berkeley-5?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 2259, 'categories': [{'alias': 'desserts', 'title': 'Desserts'}, {'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}, {'alias': 'catering', 'title': 'Caterers'}], 'rating': 4.0, 'coordinates': {'latitude': 37.86721, 'longitude': -122.25858}, 'transactions': [], 'price': '$', 'location': {'address1': '2399 Telegraph Ave', 'address2': None, 'address3': '', 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['2399 Telegraph Ave', 'Berkeley, CA 94704']}, 'phone': '+15106491000', 'display_phone': '(510) 649-1000', 'distance': 1453.5797970592673}, {'id': 'TiK0_5lrHIDraSLzn7dr0Q', 'alias': 'johns-ice-cream-berkeley', 'name': "John's Ice Cream", 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/FnDExBGc1wttD1dc2ky40Q/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/johns-ice-cream-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 640, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 4.0, 'coordinates': {'latitude': 37.86896, 'longitude': -122.26826}, 'transactions': [], 'price': '$', 'location': {'address1': '2204 Shattuck Ave', 'address2': '', 'address3': '', 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['2204 Shattuck Ave', 'Berkeley, CA 94704']}, 'phone': '+15109810370', 'display_phone': '(510) 981-0370', 'distance': 601.5238910502242}, {'id': 'GhSnAHeAHdiMc7-5HtOmCw', 'alias': 'taras-organic-ice-cream-berkeley', 'name': "Tara's Organic Ice Cream", 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/jOpBfPcVUTo3lklLyKhx6w/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/taras-organic-ice-cream-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 881, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 4.5, 'coordinates': {'latitude': 37.8517046932426, 'longitude': -122.252382254079}, 'transactions': [], 'price': '$$', 'location': {'address1': '3173 College Ave', 'address2': '', 'address3': '', 'city': 'Berkeley', 'zip_code': '94705', 'country': 'US', 'state': 'CA', 'display_address': ['3173 College Ave', 'Berkeley, CA 94705']}, 'phone': '+15106555014', 'display_phone': '(510) 655-5014', 'distance': 2739.627130926248}, {'id': 'OBAh9hCEKsUfoNAL-0tV2g', 'alias': 'almare-gelato-italiano-berkeley', 'name': 'Almare Gelato Italiano', 'image_url': 'https://s3-media4.fl.yelpcdn.com/bphoto/epOonRkfxvFkz6y-lXPWwg/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/almare-gelato-italiano-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 505, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}, {'alias': 'gelato', 'title': 'Gelato'}], 'rating': 4.5, 'coordinates': {'latitude': 37.86977, 'longitude': -122.26847}, 'transactions': [], 'price': '$', 'location': {'address1': '2170 Shattuck Ave', 'address2': '', 'address3': '', 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['2170 Shattuck Ave', 'Berkeley, CA 94704']}, 'phone': '+15106491888', 'display_phone': '(510) 649-1888', 'distance': 606.7709445599764}, {'id': 'IQmJ9K15sGYw39s1yqY6Dg', 'alias': 'little-gem-belgian-waffles-berkeley', 'name': 'Little Gem Belgian Waffles', 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/sytHM4Na6lQAqwPZBomb2g/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/little-gem-belgian-waffles-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 354, 'categories': [{'alias': 'desserts', 'title': 'Desserts'}, {'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}, {'alias': 'waffles', 'title': 'Waffles'}], 'rating': 4.5, 'coordinates': {'latitude': 37.8656, 'longitude': -122.25882}, 'transactions': ['pickup'], 'price': '$', 'location': {'address1': '2468-A Telegraph Ave', 'address2': '', 'address3': '', 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['2468-A Telegraph Ave', 'Berkeley, CA 94704']}, 'phone': '+15108838922', 'display_phone': '(510) 883-8922', 'distance': 1461.953596784621}, {'id': 'dvukLdSH4LUqQ5jcJJ3uNQ', 'alias': 'marash-turkish-ice-cream-berkeley', 'name': 'Marash Turkish Ice Cream', 'image_url': 'https://s3-media4.fl.yelpcdn.com/bphoto/-Xna5K0MxsuYBI-y3DP0Ig/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/marash-turkish-ice-cream-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 1, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 5.0, 'coordinates': {'latitude': 37.8677719, 'longitude': -122.2582301}, 'transactions': [], 'location': {'address1': '2528-A Durant Ave', 'address2': None, 'address3': '', 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['2528-A Durant Ave', 'Berkeley, CA 94704']}, 'phone': '+17149252532', 'display_phone': '(714) 925-2532', 'distance': 1532.0848852858574}, {'id': 'sghBc15Z1ti7Thkg2gq20g', 'alias': 'secret-scoop-thai-gelato-and-dessert-cafe-berkeley', 'name': 'Secret Scoop - Thai Gelato & Dessert Cafe', 'image_url': 'https://s3-media4.fl.yelpcdn.com/bphoto/91s26oS-XF8AGrx0E5PORQ/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/secret-scoop-thai-gelato-and-dessert-cafe-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 187, 'categories': [{'alias': 'gelato', 'title': 'Gelato'}, {'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}, {'alias': 'coffee', 'title': 'Coffee & Tea'}], 'rating': 4.5, 'coordinates': {'latitude': 37.87272, 'longitude': -122.27341}, 'transactions': ['pickup', 'delivery'], 'price': '$', 'location': {'address1': '1922 Martin Luther King Jr Way', 'address2': 'Ste B', 'address3': None, 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['1922 Martin Luther King Jr Way', 'Ste B', 'Berkeley, CA 94704']}, 'phone': '+14159392832', 'display_phone': '(415) 939-2832', 'distance': 470.4817834807382}, {'id': 'UZhU78qqN3sWtre-0Pwt1g', 'alias': 'three-twins-ice-cream-berkeley', 'name': 'Three Twins Ice Cream', 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/sGHpmZI-JoLyfR1M-fTwKw/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/three-twins-ice-cream-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 56, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 4.0, 'coordinates': {'latitude': 37.86975, 'longitude': -122.30024}, 'transactions': [], 'price': '$', 'location': {'address1': '1809 Fourth St', 'address2': 'Ste A', 'address3': None, 'city': 'Berkeley', 'zip_code': '94710', 'country': 'US', 'state': 'CA', 'display_address': ['1809 Fourth St', 'Ste A', 'Berkeley, CA 94710']}, 'phone': '+15106651400', 'display_phone': '(510) 665-1400', 'distance': 2214.697978662086}, {'id': 'ltTQE83zSM9lqfTmz3bbzg', 'alias': 'caravaggio-gelateria-italiana-berkeley', 'name': 'Caravaggio Gelateria Italiana', 'image_url': 'https://s3-media3.fl.yelpcdn.com/bphoto/pQWXkPgnD6MpVCetMKbVzw/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/caravaggio-gelateria-italiana-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 315, 'categories': [{'alias': 'gelato', 'title': 'Gelato'}, {'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 4.5, 'coordinates': {'latitude': 37.8751218549228, 'longitude': -122.268521988134}, 'transactions': [], 'price': '$', 'location': {'address1': '1797 Shattuck Ave', 'address2': 'Ste C', 'address3': '', 'city': 'Berkeley', 'zip_code': '94709', 'country': 'US', 'state': 'CA', 'display_address': ['1797 Shattuck Ave', 'Ste C', 'Berkeley, CA 94709']}, 'phone': '+15109002401', 'display_phone': '(510) 900-2401', 'distance': 925.4128530477726}, {'id': 'sRo38ncieIz_Riz3nax5rg', 'alias': 'mr-dewies-cashew-creamery-albany', 'name': "Mr Dewie's Cashew Creamery", 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/iiXN7aTdlHNZTncFFxUFEQ/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/mr-dewies-cashew-creamery-albany?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 390, 'categories': [{'alias': 'desserts', 'title': 'Desserts'}, {'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}, {'alias': 'vegan', 'title': 'Vegan'}], 'rating': 4.5, 'coordinates': {'latitude': 37.89027, 'longitude': -122.2980396}, 'transactions': [], 'price': '$', 'location': {'address1': '1116 Solano Ave', 'address2': None, 'address3': '', 'city': 'Albany', 'zip_code': '94706', 'country': 'US', 'state': 'CA', 'display_address': ['1116 Solano Ave', 'Albany, CA 94706']}, 'phone': '+15102259534', 'display_phone': '(510) 225-9534', 'distance': 3140.0688541673912}, {'id': 'uAHNKMsRG3A9-DXp7922DQ', 'alias': 'smitten-ice-cream-oakland-3', 'name': 'Smitten Ice Cream', 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/8JtFiTqNRdbyMGS76D8J1Q/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/smitten-ice-cream-oakland-3?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 709, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 4.0, 'coordinates': {'latitude': 37.8461514110041, 'longitude': -122.251797624008}, 'transactions': [], 'price': '$$', 'location': {'address1': '5800 College Ave', 'address2': '', 'address3': '', 'city': 'Oakland', 'zip_code': '94618', 'country': 'US', 'state': 'CA', 'display_address': ['5800 College Ave', 'Oakland, CA 94618']}, 'phone': '+15105947630', 'display_phone': '(510) 594-7630', 'distance': 3227.344843780395}, {'id': 'R1pqYB-iunG2c2DvWTmAKw', 'alias': 'lush-gelato-berkeley', 'name': 'Lush Gelato', 'image_url': 'https://s3-media4.fl.yelpcdn.com/bphoto/1oRqqWernzjNiy0PzCRHjg/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/lush-gelato-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 289, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}, {'alias': 'gelato', 'title': 'Gelato'}], 'rating': 4.5, 'coordinates': {'latitude': 37.87981, 'longitude': -122.26889}, 'transactions': [], 'price': '$', 'location': {'address1': '1511 Shattuck Ave', 'address2': '', 'address3': 'Epicurious Garden', 'city': 'Berkeley', 'zip_code': '94709', 'country': 'US', 'state': 'CA', 'display_address': ['1511 Shattuck Ave', 'Epicurious Garden', 'Berkeley, CA 94709']}, 'phone': '+15106660644', 'display_phone': '(510) 666-0644', 'distance': 1362.2696491486865}, {'id': 'ACQxcER6RDR2NOLVu0DHEg', 'alias': 'fentons-creamery-oakland-2', 'name': 'Fentons Creamery', 'image_url': 'https://s3-media3.fl.yelpcdn.com/bphoto/iFq_wRrEgCOsEcSDv-cPMA/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/fentons-creamery-oakland-2?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 4321, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}, {'alias': 'tradamerican', 'title': 'American (Traditional)'}, {'alias': 'desserts', 'title': 'Desserts'}], 'rating': 4.0, 'coordinates': {'latitude': 37.8278770446777, 'longitude': -122.250015258789}, 'transactions': ['pickup'], 'price': '$$', 'location': {'address1': '4226 Piedmont Ave', 'address2': '', 'address3': '', 'city': 'Oakland', 'zip_code': '94611', 'country': 'US', 'state': 'CA', 'display_address': ['4226 Piedmont Ave', 'Oakland, CA 94611']}, 'phone': '+15106587000', 'display_phone': '(510) 658-7000', 'distance': 5034.90021603294}, {'id': 'V3CFqAyBh4lIujrV2luPgg', 'alias': 'endless-summer-sweets-berkeley-2', 'name': 'Endless Summer Sweets', 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/j6kdXmOCPLuFYu_3jSIulw/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/endless-summer-sweets-berkeley-2?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 296, 'categories': [{'alias': 'desserts', 'title': 'Desserts'}, {'alias': 'gourmet', 'title': 'Specialty Food'}], 'rating': 4.5, 'coordinates': {'latitude': 37.8661251, 'longitude': -122.2680387}, 'transactions': [], 'price': '$', 'location': {'address1': '2370 Shattuck Ave', 'address2': '', 'address3': '', 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['2370 Shattuck Ave', 'Berkeley, CA 94704']}, 'phone': '+15103564130', 'display_phone': '(510) 356-4130', 'distance': 677.4247300740658}, {'id': 'la_65qCL_fySntbGQljRAA', 'alias': 'curbside-creamery-oakland', 'name': 'Curbside Creamery', 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/pksFvSwTHyl-DqJ3iZw5Bw/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/curbside-creamery-oakland?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 388, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 4.0, 'coordinates': {'latitude': 37.83613, 'longitude': -122.26187}, 'transactions': [], 'price': '$', 'location': {'address1': '482 49th St', 'address2': '', 'address3': '', 'city': 'Oakland', 'zip_code': '94609', 'country': 'US', 'state': 'CA', 'display_address': ['482 49th St', 'Oakland, CA 94609']}, 'phone': '+15102509804', 'display_phone': '(510) 250-9804', 'distance': 3796.697492087299}, {'id': 'LNdmk-ZXmTE8a2xQGL3OeQ', 'alias': 'yogurt-park-berkeley', 'name': 'Yogurt Park', 'image_url': 'https://s3-media2.fl.yelpcdn.com/bphoto/7cEuZQ_DXhxHRBwXxrN6QA/o.jpg', 'is_closed': False, 'url': 'https://www.yelp.com/biz/yogurt-park-berkeley?adjust_creative=NX_mnnk1tq2inmAABIy0tg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=NX_mnnk1tq2inmAABIy0tg', 'review_count': 737, 'categories': [{'alias': 'icecream', 'title': 'Ice Cream & Frozen Yogurt'}], 'rating': 4.0, 'coordinates': {'latitude': 37.8679885864258, 'longitude': -122.259841918945}, 'transactions': [], 'price': '$', 'location': {'address1': '2433 Durant Ave', 'address2': 'Ste A', 'address3': '', 'city': 'Berkeley', 'zip_code': '94704', 'country': 'US', 'state': 'CA', 'display_address': ['2433 Durant Ave', 'Ste A', 'Berkeley, CA 94704']}, 'phone': '+15105490570', 'display_phone': '(510) 549-0570', 'distance': 1335.0298875658677}], 'total': 805, 'region': {'center': {'longitude': -122.27508544921875, 'latitude': 37.868608844326545}}}
Exemple #3
0
class ConnectYelp(ConnectorEvent):
    TYPE = "Yelp"

    def __init__(self):
        api_key = get_secret('YELP', 'api_key')
        self.api = YelpAPI(api_key)

        events_connector = ConnectorEvent.query.filter(
            ConnectorEvent.connector_type == ExtractEvents.TYPE,
            ConnectorEvent.connector_event_id == ExtractEvents.ID).first()
        self.events = events_connector.data

    def extract(self, name=None, event_id=None, backfill=None):
        connector = self.get_connector()

        for key, event in self.events.items():
            place_id = get_from(event, ['place_id'])
            place_name = get_from(event, ['name'])

            if not place_id: continue
            if event_id is not None and place_id != event_id: continue
            if name is not None and name != place_name: continue

            if backfill and place_id in connector.data:
                print("Found Place ID {} => {}".format(
                    place_id, connector.data[place_id]['name']))
                continue

            search_results = None
            b_details = None

            event_name = event['name']
            event_addr = get_from(event, ['address'])
            event_city = event['city']
            event_state = get_from(event, ['state'], 'CA')

            if not search_results:
                kwargs = {
                    'name': event_name,
                    'address1': event_addr,
                    'city': event_city,
                    'state': event_state
                }
                print(" | ".join(
                    ["{}: \"{}\"".format(k, v) for k, v in kwargs.items()]))

                try:
                    search_results = self.api.business_match_query(
                        country="US", **kwargs)
                except Exception as e:
                    print("business_match_query: {}".format(e))

            if not search_results or len(search_results['businesses']) == 0:
                try:
                    term = " ".join([event_name, event_city, event_state])
                    location = " ".join([event_city, event_state])

                    kwargs = {'term': term, 'location': location}
                    print(" | ".join([
                        "{}: \"{}\"".format(k, v) for k, v in kwargs.items()
                    ]))

                    search_results = self.api.search_query(limit=1, **kwargs)
                except Exception as e:
                    print("search_query: {}".format(e))

            if search_results:
                for r in search_results['businesses']:
                    b_details = None
                    try:
                        b_details = self.api.business_query(id=r['id'])
                    except Exception as e:
                        print("business_query: {}".format(e))
                        print(r['id'])

                if b_details:
                    # row_event.update_meta(self.TYPE, {**r, **b_details})
                    # db_session.merge(row_event)
                    # db_session.commit()
                    connector.data[place_id] = b_details
                    db_session.merge(connector)
                    db_session.commit()
                    #
                    yield b_details['name'], b_details
                else:
                    print("Unable to find {}".format(place_id))
Exemple #4
0
nameRes = ""
addressRes = ""
stateRes = 'CO'
cityRes = 'Denver'

output_json = []

with open('data.json') as json_file:
    data = json.load(json_file)
    for p in data:
        nameRes = p['name']
        addressRes = p['address']
        response = yelp_api.business_match_query(name=nameRes,
                                                 address1=addressRes,
                                                 city=cityRes,
                                                 state=stateRes,
                                                 country='US')
        biz_info = response['businesses']
        idRes = ""
        if len(biz_info) > 0:
            idRes = biz_info[0]['id']
            response = yelp_api.business_query(id=idRes)
            output_json.append({
                'name': nameRes,
                'address': addressRes,
                'website': p['website'],
                'rating': response['rating'],
                'review_count': response['review_count'],
            })
Exemple #5
0
response = yelp_api.phone_search_query(phone='+13193375512')
pprint(response)
print('\n-------------------------------------------------------------------------\n')


"""
    Example business match query with the 'best' type.
    
    Business Match API: https://www.yelp.com/developers/documentation/v3/business_match
"""
print('***** search for business best match *****\n{}\n'.format("yelp_api.business_match_query(name='Splash Cafe', "
                                                                "address1='197 Pomeroy Ave', ",
                                                                "city='Pismo Beach', state='CA', country='US')"))
response = yelp_api.business_match_query(name='Splash Cafe',
                                         address1='197 Pomeroy Ave',
                                         city='Pismo Beach',
                                         state='CA',
                                         country='US')
pprint(response)
print('\n-------------------------------------------------------------------------\n')


"""
    Example business match query with the 'lookup' type.
    
    Business Match API: https://www.yelp.com/developers/documentation/v3/business_match
"""
print('***** search for business best match *****\n{}\n'.format("yelp_api.business_match_query(name='Splash Cafe', "
                                                                "address1='197 Pomeroy Ave', ",
                                                                "city='Pismo Beach', state='CA', country='US')"))
response = yelp_api.business_match_query(name='Splash Cafe',
class YelpData(object):
    """
    This class will complete handle the calls for Yelp Data
    Business API - business_query()
    Business Match API - business_match_query()
    Reviews API - reviews_query()
    """
    def __init__(self):
        self.business_match = mongodb.db.business_match
        self.business_details = mongodb.db.business_details
        self.business_reviews = mongodb.db.business_reviews
        self.yelp_req = mongodb.db.yelp_request
        self.yelp_api = YelpAPI(app.config['YELP_API_KEY'])
        self.response = None

    @staticmethod
    def _remove_keys(json_data):
        del json_data['user_id']
        del json_data['_id']
        return json_data

    def get_business_match_data(self,
                                user_id=None,
                                name=None,
                                address1='',
                                address2=None,
                                address3=None,
                                city=None,
                                state=None,
                                country=None,
                                latitude=None,
                                longitude=None,
                                phone=None,
                                zip_code=None,
                                yelp_business_id=None,
                                limit=1,
                                match_threshold='default'):
        """
                    Link: https://www.yelp.com/developers/documentation/v3/business_match
                    required parameters:
                        * name - business name
                        * city
                        * state
                        * country
        """
        self.response = self.yelp_api.business_match_query(
            name=name,
            address1=address1,
            address2=address2,
            address3=address3,
            city=city,
            state=state,
            country=country,
            latitude=latitude,
            longitude=longitude,
            phone=phone,
            zip_code=zip_code,
            yelp_business_id=yelp_business_id,
            limit=limit,
            match_threshold=match_threshold)
        self.response['user_id'] = user_id
        self.business_match.insert_one(self.response)
        self.response = self._remove_keys(self.response)
        return self.response

    def get_business_details(self, business_id, user_id):
        self.response = self.yelp_api.business_query(id=business_id)
        self.response['user_id'] = user_id
        self.business_details.insert_one(self.response)
        self.response = self._remove_keys(self.response)
        return self.response

    def get_business_reviews(self, business_id, user_id):
        self.response = self.yelp_api.reviews_query(id=self.business_id)
        self.response['user_id'] = user_id
        self.business_reviews.insert_one(self.response)
        self.response = self._remove_keys(self.response)
        return self.response

    def yelp_request(self, yelp_request, user_id):
        yelp_request['req_datetime'] = datetime.datetime.now()
        yelp_request['user_id'] = user_id
        return self.yelp_req.insert_one(yelp_request).acknowledged