Извлечение данных из Openweathermap.org с помощью MATLAB

#matlab #url #web-scraping

#matlab #url #очистка веб-страниц

Вопрос:

в настоящее время я использую MATLAB для очистки openweathermap.org данные о максимальной и минимальной температуре, давлении и влажности из API. Моя проблема в том, что независимо от того, какие широты и lon я указываю в URL, URL остается точно таким же. Вот ссылка на сайт API, который я использую для получения текущих данных: https://openweathermap.org/current

В настоящее время я пробую метод, в котором я изменяю широту и долготу, чтобы они соответствовали широте и долготе точки в цикле for. Я пытаюсь записать эти данные в файл csv. Запись идет нормально, моя единственная проблема в том, что независимо от того, как я изменяю URL, данные на листе остаются неизменными.

 clear all
close all
% Using data from https://openweathermap.org/history
% Inputs are the latitude and longitude.

%% Add the EPA Code

match_file = 'C:Userstadams15DesktopMatching_Sites.csv';
data = xlsread(match_file);
lat = data(:,1);
lon = data(:,2);
for i = 1:length(lat)
    latv = lat(i);
    lonv = lon(i);
    url = ['https://samples.openweathermap.org/data/2.5/weather?lat=',num2str(latv),'amp;lon=',num2str(lonv),'amp;appid=b6907d289e10d714a6e88b30761fae22'];
    tempmaxtarget = 'temp_max';
    tempmintarget = 'temp_min';
    prestarget = 'pressure';
    humtarget = 'humidity';

    tempmax = urlfilter(url,tempmaxtarget);
    tempmin = urlfilter(url,tempmintarget);
    pressure = urlfilter(url,prestarget);
    humidity = urlfilter(url,humtarget);
    input = [tempmin tempmax pressure humidity];
    dlmwrite('Site_Info.csv',input,'delimiter',',','-append');
end
  

Ответ №1:

Я не использую MATLAB, я использую Python, поэтому я не могу тестировать, но, похоже, вам нужно исправить свой URL.

Похоже, вы просто вызываете образец возврата каждый раз:

 https://samples.openweathermap.org/data/2.5/weather
  

Может быть, вы хотите вместо этого?:

 api.openweathermap.org/data/2.5/weather
  

Комментарии:

1. ИДЕАЛЬНО! Спасибо! Все, что мне нужно сделать сейчас, это исправить мою цель очистки, и все готово. Спасибо за помощь!

2. Была ли в этом проблема?