Предлагаем вашему вниманию скрипт, который собирает финансовые данные по котировкам из таблиц на 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%)
и т.д.
Настройки скрипта:
1 2 3 4 |
// файл с символами компаний $quotes=file("data/quotes.txt"); // путь к файлу с результатами создаётся по дате и времени запуска $res_file_name = "res/".date("mdy_His").".csv"; |
Для этого скрипта, как впрочем и для любого другого, можно использовать Расписание скриптов для запуска в нужное время или нужное количество раз.
В расписании скриптов есть возможность запускать скрипт заданное количество раз, один раз, раз в минуту, раз в 5 минут, раз в 10 минут, по выбору, раз в полчаса, раз в час, раз в день, раз в неделю, раз в месяц, раз в год, бесконечно.
Можно легко переделать скрипт, для получение любых необходимых данных с finance.yahoo.com.
Поменять формат вывода данных.
Дописать скрипт, что бы он выполнял необходимый анализ данных и при нахождении нужных параметров отправлял сообщение на email.
Для более быстрой работы скрипта рекомендуется отключить картинки, java script, java, active x, звуки и видео в настройках браузера.
Сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
<?php /* ** // Наш сайт http://x-scripts.com // Скрипт сбора данных из таблиц. // по любым вопросам касающимся скрипта // можно написать нам на мыло order@x-scripts.com ** */ $xhe_host ="127.0.0.1:7012"; // The following code is required to properly run XWeb Human Emulator require("../../Templates/xweb_human_emulator.php"); // ////////// настройки скрипта/////////////////// $quotes=file("data/quotes.txt"); // режим отладки $dbg=true; // путь к файлу с результатами $res_file_name = "res/".date("mdy_His").".csv"; // /////////////////// дополнительные модули ///////////////////// // функции require_once("functions.php"); // ///////////////////// script ///////////////////////////////////////////////////////// debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт запустили"); // по всем котировкам for($i=0;$i<count($quotes);$i++) { // перейти на заданную страницу $browser->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\] ")." скрипт закончил работу<br>"); // Quit $app->quit(); ?> |
Скрипт написан 19.09.2012 в Human Emulator 4.4.19 Advanced.
На момент публикации статьи 20.09.2012 скрипт был рабочий.
скачать скрипт
Этот скрипт работает в Demo версии программы Human Emulator. Посмотреть все скрипты для Demo и Скачать Demo