Seeking Assistance in Using a GUI to Return Text From A Webpage
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Chedi Mbaga
am 2 Feb. 2021
Kommentiert: Chedi Mbaga
am 10 Feb. 2021
Hello!
I am currently developing a MATLAB GUI using App Designer. The premise for this app is that users will able to select 1/5 cities using a dropdown menu. After completing their selection, a button next to the dropdown menu will be coded with a callback function that: (PART 1) returns the html code for the city's 7-day forecast in an editable text field below; and (PART 2) returns the text from the forecast in a multiline text area. See the photos below for reference:
This is the code I have for PART 1 and it seems to work fine:
% Button pushed function: SEARCHWEBButton
function SEARCHWEBButtonPushed(app, event)
app.geosearch = app.CityDropDown.Value;
app.TORn = 'Toronto';
app.OTTn = 'Ottawa';
app.MISSn = 'Mississauga';
app.BRMPn = 'Brampton';
app.HMLTn = 'Hamilton';
app.TORu = 'https://weather.gc.ca/city/pages/on-143_metric_e.html';
app.OTTu = 'https://weather.gc.ca/city/pages/on-118_metric_e.html';
app.MISSu = 'https://weather.gc.ca/city/pages/on-24_metric_e.html';
app.BRMPu = 'https://www.weather.gc.ca/city/pages/on-4_metric_e.html';
app.HMLTu = 'https://weather.gc.ca/city/pages/on-77_metric_e.html';
% Concatenate City Names & URLs
app.CityName = {app.TORn;app.OTTn;app.MISSn;app.BRMPn;app.HMLTn};
app.CityURL = {app.TORu; app.OTTu; app.MISSu; app.BRMPu; app.HMLTu};
%Join Cities and URLS
app.CityLgd = [app.CityName app.CityURL];
%Index Cell Array for Search Term
app.s01 = app.geosearch;
app.s02 = app.CityLgd(:,1);
app.tf = strcmpi(app.s01,app.s02);
app.tf = find(app.tf);
app.index = app.tf;
app.sURL = char(app.CityLgd(app.index,2));
app.WeatherCANLinkEditField.Value = app.sURL;
The following code is what I have for completing PART 2 (returning the text from the weather report):
url = app.sURL;
code = webread(url);
app.RetrievedDataTextArea.Value = extractHTMLText(code);
However, it seems to fail with each trial. Is there a way to code the GUI to return text from an external HTML page?
2 Kommentare
Mario Malic
am 3 Feb. 2021
Hello,
One of the Stuart's blog posts https://blogs.mathworks.com/videos/2020/11/13/scraping-links-from-a-list-of-web-pages/ is about extracting links from the web page, which may help you in getting the text.
Akzeptierte Antwort
Sourabh Kondapaka
am 10 Feb. 2021
The below code can be used as a reference for extracting the data about temperatures:
url = 'https://weather.gc.ca/city/pages/on-143_metric_e.html';
data = webread(url);
tree = htmlTree(data);
pTags = findElement(tree,'p');
textContent = extractHTMLText(pTags);
Documentation links:
Similar questions have been answered in the community:
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Introduction to Installation and Licensing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!