Получение данных с сайта - PullRequest
       1

Получение данных с сайта

6 голосов
/ 20 сентября 2011

Таким образом, веб-сайт постоянно изменяет отображаемые данные, и я хочу получать эти данные каждые несколько секунд и регистрировать их в электронной таблице.Проблема в том, чтобы попасть на страницу, у меня должен быть файл cookie, который я получаю при входе в систему. К сожалению, я знаю только, как программировать в MATLAB.Для этого в MATLAB есть функция urlread , но она не работает с файлами cookie.Что я могу сделать, чтобы попасть на эту страницу?Кто-нибудь может мне с этим помочь?Укажите мне направление, в котором такой программирующий нуб, как я, может преуспеть, пожалуйста.

Ответы [ 3 ]

5 голосов
/ 21 сентября 2011

Вы можете использовать wget для загрузки контента при использовании файлов cookie HTTP. Я буду использовать StackOverflow.com в качестве примера цели. Вот следующие шаги:

1) Получить командный инструмент wget. Для Mac или Linux, я думаю, что это уже доступно. В Windows его можно получить из проекта GnuWin32 или из одного из множества других портов (Cygwin, MinGW / MSYS и т. Д.).

2) Затем нам нужно получить аутентифицированный cookie, войдя на данный веб-сайт. Вы можете использовать ваш любимый браузер для этого.

В Internet Explorer вы можете создать его, используя « Меню Файл> Импорт и экспорт> Экспорт файлов cookie ». В Firefox я использовал расширение Cookie Exporter для экспорта файлов cookie в текстовый файл. Для Chrome должны быть аналогичные расширения

Очевидно, вам нужно выполнить этот шаг только один раз, если срок действия файлов cookie еще не истек!

3) Найдя экспортированный файл cookie, мы можем использовать wget для загрузки веб-страницы и предоставить ему с этим файлом cookie. Это, конечно, можно выполнить изнутри MATLAB, используя функцию SYSTEM :

%# fetch page and save it to disk
url = 'http://stackoverflow.com/';
cmd = ['wget --cookies=on --load-cookies=./cookies.txt ' url];
system(cmd, '-echo');

%# process page: I am simply viewing it using embedded browser
web( ['file:///' strrep(fullfile(pwd,'index.html'),'\','/')] )

Разбор веб-страницы - это совсем другая тема, в которую я не буду вдаваться. Получив нужные данные, вы можете взаимодействовать с электронными таблицами Excel, используя функции XLSREAD и XLSWRITE .

4) Наконец, вы можете записать это в функцию и заставить ее выполняться через регулярные интервалы , используя функцию TIMER

1 голос
/ 21 сентября 2011

Попробуйте использовать классы java.net. *.

Вы должны иметь возможность использовать их непосредственно в рабочем пространстве MATLAB, как описано здесь: http://www.mathworks.co.uk/help/techdoc/matlab_external/f4863.html

0 голосов
/ 17 октября 2014

Matlab имеет встроенные функции для загрузки через Интернет. Для http-сайтов есть webread.m и websave.m. Для FTP есть mget.m

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...