- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Задача: спарсить данные таблиц с http://finance.yahoo.com/q/op?s=GDX
Нужны 2 массива, Calls и Puts
Завис на разборе таблицы, такое ощущение что концы строк в haystack прерывают работу preg_match_all - может быть такое?
попытка удаления концов строк не имеет результата:
$rep = array("\r\n", "\n", "\r");
echo str_replace($rep,'',$haystack);
тут-то что не так? может конфликт кодировок скрипта/данных влиять?
ловить на пробу пытаюсь выражением
preg_match_all('/\<tr .\>([\d\]+[\.]?[\d]?).\<.\<\/tr\>/', $haystack, $matches);
Если кто предложит готовое решение, с меня пиво!
Может быть. Точка не соответствует переводам строк без модификатора шаблона s. Кроме того, что-то никаких квантификаторов у вас не видно, что, здесь только один символ "\<.\<\/tr\>"? И в квадратные скобки точка это обычные символ точки.
Могу предложить такой вариант разбора таблицы. Собираем содержимое всех ячеек. Полученный одномерный массив делим на части по количеству столбцов в таблице.
готовое решение
скрипт парсит обе таблицы, можно сказать - сколько угодно таких таблиц на странице..
на выходе многомерный массив таблиц-данных вида:
Нужны 2 массива, Calls и Puts
Берем данные нужной таблиц как $haystack['Calls'], $haystack['Puts']
или 2 массива
$Calls = $haystack['Calls'];
$Puts= $haystack['Puts'];
vantala, обращайтесь ели нужно.. рыба к пиву есть..
vantala, обращайтесь ели нужно.. рыба к пиву есть..
Спасибо, это идеальный вариант, похоже... номер WMR киньте в личку 🍻
---------- Добавлено 16.03.2015 в 15:02 ----------
Могу предложить такой вариант разбора таблицы. Собираем содержимое всех ячеек. Полученный одномерный массив делим на части по количеству столбцов в таблице.
Интересное решение, возьму на вооружение, спасибо! Номер WMR киньте в личку 🍻
Предлагаю свое решение:
Пример вывода:
Готовое решение выложил на гитхаб
Раз пошла пьянка с решениями, то выложу и я свой вариант
Result:
да тут настоящий конкурс уже образовался, или курсы по парсингу) запишу в блокнотик решения на всякий случай, спасибо!
Ладно, конкурс так конкурс...
Первые два варианта по праву первенства уже присоединились к пьянке.
По остальным вариантам будет проведен тест на производительность.
Если предложенное решение быстрее ранее предлагавшихся, так и быть, проставляюсь еще и победителю 🍻
Окончание приема 19 марта 2015 23:59 МСК, оглашение итогов 20 марта.
Не ожидал такого отклика, спасибо всем откликнувшимся!
По остальным вариантам будет проведен тест на производительность.
Тест на производительность понятие субъективное. Естественно регулярные выражения в скорости выигрывают перед парсингом DOM модели. За то поддерживать такой код легче, более понятен, чем парсинг на регулярках.
Тест на производительность понятие субъективное.
Полностью согласет с siv1987 сам делал упор на читабельность кода.Как насчет пригласить арбитра-программиста? Не только скорость ,но и логика ☝ Может SeVlad? Сам я болею за senks777 ,если он оформит свое решение в более читабельный вид.Думаю многим будет полезно.