I want MATLAB to pull restaurant names from Yelp

2 views (last 30 days)
I want to pull restaurant names from Yelp when the user gives a location. Not sure how to get information other than the java. I built this using the help section.
citylocation=input('What is your City location? ','s');
statelocation=input('What is your State location? ','s');
link2web=(['https://www.yelp.com/search?find_desc=Restaurants&find_loc=',citylocation,'%2C+',statelocation,'&ns=1']);
%web(link2web)
url = [link2web];
S = webread(url);
options = weboptions('ContentType','text');
textData = webread(url,options)

Answers (1)

Jalaj Gambhir
Jalaj Gambhir on 6 Apr 2020
Hi,
For your specific case, if you look at the textData returned (for say, citylocation = 'New York' and statelocation = 'NY'), you can observe that the results are stored in "og:description" tags' content property
The textData contains:
....
<meta property="og:description" content="Best Restaurants in New York, NY - Jacob&#39;s Pickles, Soco, Bunker...."> %%result truncated for readability
<meta property="og:site_name" content="Yelp">
....
So, you need to extract the text between these two tags. This can be easily achieved by 'regexp'
url = [link2web];
S = webread(url);
options = weboptions('ContentType','text');
textData = webread(url,options)
%% Use the following code:
pattern = '((?<=<meta property="og:description" content=").*(?=<meta property="og:site_name"))'
result = regexp(textData,pattern,'match')
This returns result as:
{'Best Restaurants in New York, NY - Jacob&#39;s Pickles, Soco, Bunker...'}

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!