Предлагаем вашему вниманию скрипт, который собирает финансовые данные по котировкам из таблиц на finance.yahoo.com.

На вход скрипт принимает символы компаний из файла /data/quotes.txt, который имеет формат:
MSFT
HPQ
INTC
CSCO
AA
ORCL
IBM
и т.д.

В результате работы скрипта создаётся csv файл в формате:
symbol;Prev Close;Open;High;Low;Close;Volume;Change

Пример результатов:

MSFT;31.17;31.08;31.19;31.06;31.14;21,996,313;0.03(0.11%)
HPQ;18.25;18.42;18.41;18.16;18.23;9,983,753;0.02(0.11%)
INTC;23.37;23.48;23.51;23.27;23.39;16,197,458;0.02(0.09%)
CSCO;19.05;19.19;19.20;18.95;19.15;15,482,231;0.11(0.55%)
AA;9.49;9.61;9.65;9.51;9.51;8,861,214;0.02(0.21%)
ORCL;33.01;33.01;33.08;32.56;32.85;12,649,463;0.16(0.48%)
IBM;207.07;207.55;207.57;206.01;206.85;1,298,211;0.22(0.11%)
и т.д.

Настройки скрипта:

// файл с символами компаний
$quotes=file("data/quotes.txt");
// путь к файлу с результатами создаётся по дате и времени запуска
$res_file_name = "res/".date("mdy_His").".csv";

Для этого скрипта, как впрочем и для любого другого, можно использовать Расписание скриптов для запуска в нужное время или нужное количество раз.
В расписании скриптов есть возможность запускать скрипт заданное количество раз, один раз, раз в минуту, раз в 5 минут, раз в 10 минут, по выбору, раз в полчаса, раз в час, раз в день, раз в неделю, раз в месяц, раз в год, бесконечно.

Расписание скриптов. Добавление задачи.

Расписание скриптов. Добавление задачи.

Расписание скриптов.

Расписание скриптов.

Можно легко переделать скрипт, для получение любых необходимых данных с finance.yahoo.com.
Поменять формат вывода данных.
Дописать скрипт, что бы он выполнял необходимый анализ данных и при нахождении нужных параметров отправлял сообщение на email.

Для более быстрой работы скрипта рекомендуется отключить картинки, java script, java, active x, звуки и видео в настройках браузера.


Сам скрипт:

navigate("http://finance.yahoo.com/q?s=".trim($quotes[$i])."&ql=1");
	
	// получить данные в формате
	//symbol;Prev Close;Open;High;Low;Close;Volume;CHANGE	
	$str=trim($quotes[$i]).";";
	// закрытие
	$str_close=$element->get_inner_text_by_attribute("class","time_rtq_ticker",false);
   // изменение
	$str_change=$element->get_inner_text_by_attribute("class","time_rtq_content",false);
   // prev close
	$str_prev=$table->get_cell_by_number($table->get_number_by_id("table1"),0,1,false);
   // открытие
	$str_open=$table->get_cell_by_number($table->get_number_by_id("table1"),1,1,false);
	// получаем дневной низ и верх
	$str_day_range=$table->get_cell_by_number($table->get_number_by_id("table2"),0,1,false);
   $str_day_range=explode("-", $str_day_range);
	$str_low=trim($str_day_range[0]);
	$str_high=trim($str_day_range[1]);
   // volume
	$str_volume=$table->get_cell_by_number($table->get_number_by_id("table2"),2,1,false);
	// результирующая строка
	$str.=$str_prev.";". $str_open.";".$str_high.";".$str_low.";".$str_close.";".$str_volume.";".$str_change."\n";
	// записываем в файл
	$textfile->add_string_to_file($res_file_name,$str,60) ;
}
debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт закончил работу
"); // Quit $app->quit(); ?>

Скрипт написан 19.09.2012 в Human Emulator 4.4.19 Advanced.
На момент публикации статьи 20.09.2012 скрипт был рабочий.
скачать скрипт

Этот скрипт работает в Demo версии программы Human Emulator. Посмотреть все скрипты для Demo и Скачать Demo

Как исправить скрипт, если он не работает, на примере скрипта сбора котировок

Добавить комментарий

*
*

Необходимые поля отмечены*