Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95

Подскажите, как вывести со спарсеной страницы 1 строку, а именно баланс?

27.01.2016, 14:12. Показов 1662. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Подскажите как вывести со спарсеной страницы 1 строку, а именно баланс?
PHP
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
<?php
$url = 'http://catcut.net/';                        // Куда зайти
$urlTo = 'http://catcut.net/hello.php?to=';    // Куда данные послать
$login = 'login';                          // Логин
$pass = 'pass';                            // Пароль 
$help_go = 'on';
$h_go = 'Войти';
$post = 'email=' . $login . '&h_go=' . $h_go . '&help_go=' . $help_go . '&password=' . $pass;    // POST данные
 
$ch = curl_init();                              // Инициализация сеанса
curl_setopt($ch, CURLOPT_URL, $url);            // Заходим на сайт
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Приказываем вернуть страницу в переменную
 
$html = curl_exec($ch);                         // Забираем страницу
 
curl_setopt($ch, CURLOPT_URL, $urlTo);              // Куда шлем POST данные
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');  // Записываем cookie
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Читаем cookies
curl_setopt($ch, CURLOPT_POST, true);               // Указываем метод отправки
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);        // POST данные
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);     // Говорим скрипту, чтобы он следовал за редиректами которые происходят во время авторизации
 
$html = curl_exec($ch); // Забираем страницу
curl_close($ch);        // Завершаем сеанс
echo $html;             // Выводим контент
 
 
?>
На спарсеной странице нужно что бы был вывод только самого баланса 508.02 из этого блока <div class="in_bl vam">ЗАРАБОТОК: <b>508.02</b> РУБ.</div>
Как сделать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2016, 14:12
Ответы с готовыми решениями:

Как отследить, что юзер пришел именно с конкретной страницы с формой?
В моей книге было описано, как предохраниться от следующего: юзер набиреат полный путь в строке адреса броузера и попадает на асп, а...

Подскажите, как реализовать проверку того, что пользователь с консоли вводит ИМЕННО предложение, то есть, если
Подскажите, как реализовать проверку того, что пользователь с консоли вводит ИМЕННО предложение, то есть, если он будет вводить...

Вывести бегущую строку в некоторых местах страницы
Здравствуйте, столкнулся с небольшой проблемой, есть сайт на Wordpress, есть шорткод для вывода последних записей в сайдбаре, в некоторых...

7
 Аватар для monahoff
40 / 40 / 23
Регистрация: 26.01.2012
Сообщений: 317
27.01.2016, 14:45
PHP
1
2
3
//тут ваша страница $html
preg_match('/<div class="in_bl vam">ЗАРАБОТОК: <b>(.*)<\/b> РУБ\.<\/div>/isU', $html, $a, PREG_PATTERN_ORDER);
print_r($a);
дальше ясно, надеюсь))
0
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
27.01.2016, 14:51  [ТС]
monahoff, Warning: preg_match() [function.preg-match]: Invalid flags specified in C:\OpenServer\domains\localhost\index.ph p on line 28
Array ( ) такие дела
0
 Аватар для monahoff
40 / 40 / 23
Регистрация: 26.01.2012
Сообщений: 317
27.01.2016, 15:15
Пардон, напутал немного

PHP
1
2
preg_match('/<div class="in_bl vam">ЗАРАБОТОК: <b>(.*)<\/b> РУБ\.<\/div>/isU', $html, $a);
print_r($a);
0
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
27.01.2016, 17:39  [ТС]
monahoff, не пашет. Array ( )
0
 Аватар для monahoff
40 / 40 / 23
Регистрация: 26.01.2012
Сообщений: 317
28.01.2016, 00:48
А у меня работает!!! Мой сервер лучше вашего))) Шутка, смотрите внимательнее!!!

PHP
1
2
3
4
//допустим в $html попадает такой текст, ситуация полностью совпадает с той, что вы описали
$html = '...bla bla bla <div class="in_bl vam">ЗАРАБОТОК: <b>123</b> РУБ.</div> bla bla bla...';
preg_match('/<div class="in_bl vam">ЗАРАБОТОК: <b>(.*)<\/b> РУБ\.<\/div>/isU', $html, $a);
print_r($a);
если не работает пробуйте так
PHP
1
2
preg_match('/ЗАРАБОТОК:\s+<b>(.*)<\/b>\s+РУБ/isU', $html, $a);
print_r($a);
1
0 / 0 / 1
Регистрация: 08.01.2016
Сообщений: 95
28.01.2016, 07:34  [ТС]
monahoff, действительно. Второй вариант больше подошел. Благодарю. Проблема в сервере была, а именно в кодировке. Сам файл cURL был в cp1251, а страницу он парсит в UTF-8. Решил поити дальше и возникает два вопроса, как вырезать метатег <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> и что бы парсинг был не главной страницы, а делал редирект на http://catcut.net/adv.php?type=sites#menu_main и парсил ее? Так же проблема на хостинге отказывается работать. Не проходит авторизацию. curl включен.

Добавлено через 5 минут
переход сделал. Осталось вырезать метатег.

Добавлено через 53 минуты
На хостинге все работает. Правда почему то через раз, но иногда и нормально. Столкнулся еще с тем что нужно спарсить дополнительно 3 строки.
HTML5
1
2
3
4
<span class="number_click ads_stat_bl in_bl">79</span> //нужно спарсить
<span class="number_click ads_stat_bl in_bl">52 894</span> //нужно спарсить
<span class="number_click ads_stat_bl in_bl" style="width: 55px !important;">0.149 %</span>
<span class="number_click ads_stat_bl in_bl">156.80 р.</span> //нужно спарсить
1 строку парсит так
PHP
1
2
preg_match('/<span class="number_click ads_stat_bl in_bl">(.*)\<\/span>/isU', $html, $s);
print_r($s);
как быть с другими двумя я не понимаю. Выводит всю строку, а не определенные значения. Читал про регулярные выражения не чего не понял.

Добавлено через 13 минут
с мета тегом поступил так iconv("utf-8", "cp1251", $html); проблема когда не получается спарсить я думаю это то что скрипт не успевает по timeout и вот не могу это дело прикрутить и с регулярками не понимаю их вообще!

Добавлено через 38 минут
Напишите в ICQ 580468267 или Skype l2diky
0
 Аватар для monahoff
40 / 40 / 23
Регистрация: 26.01.2012
Сообщений: 317
28.01.2016, 11:51
Лучший ответ Сообщение было отмечено HolySaint как решение

Решение

PHP
1
preg_match_all('/<span class="number_click ads_stat_bl in_bl">(.*)<\/span>/isU', $html, $s, PREG_PATTERN_ORDER);
такая конструкция найдет все совпадения, соответственно, в массив $s попадут строки 79, 52 894, 156.80 р. А дальше останется лишь достать эти значения оттуда.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2016, 11:51
Помогаю со студенческими работами здесь

Как именно в методах расширения указать, что переходить нужно именно главный контроллер?
В проекте есть несколько Areas. Маршрутизация нстроена так (для наглядности сократил) public class RouteConfig { ...

Как вывести на экран именно адрес символьного массива?
Добрый день! Есть два кода с указателями: в одном указатель типа int, во втором типа char. #include &lt;iostream&gt; using...

Как вывести те данные, которые нужны именно мне из бд phpmyadmin
Как вывести те данные, которые нужны именно мне, например, у меня есть таблица, где в первом столбце номер(ID), второй столбец - Имя. В бд...

Проверять строку на баланс скобок
Драствуйте. Условие такое - написать програмку которая будет проверять строку на баланс скобок (закрытые, открытые) и чтобы текст читало с...

Regex: Вытащить из страницы кусок, который определяет баланс аккаунта
В html коде страницы есть кусок, который определяет баланс аккаунта &lt;span id=&quot;ubalance&quot;&gt;0.086900&lt;/span&gt; чтобы вытащить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru