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

Парсинг на PHP

06.10.2013, 19:06. Показов 3639. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане. В PHP новичок. Подскажите кто-нибудь, пожалуйста. Буду благодарен любому совету. Стоит задача парсить расписание транспорта с сайта. Вот структура сайта:

HTML5
1
<div class='budmi_stop'><span class='budmi_text_stop'><b>Будние -</b> <span class='h'>06</span><span class='m'>08,</span> <span class='m'>20,</span> <span class='m'>31,</span> <span class='m'>43,</span> <span class='m'>55,</span> <span class='h'>07</span><span class='m'>07,</span> <span class='m'>17,</span> <span class='m'>30,</span> <span class='m'>41,</span> <span class='m'>53,</span> <span class='h'>08</span><span class='m'>05,</span> <span class='m'>16,</span> <span class='m'>28,</span> <span class='m'>39,</span> <span class='m'>51,</span> <span class='h'>09</span><span class='m'>03,</span> <span class='m'>15,</span> <span class='m'>38,</span> <span class='h'>10</span><span class='m'>02,</span> <span class='m'>26,</span> <span class='m'>39,</span> <span class='m'>52,</span> <span class='h'>11</span><span class='m'>04,</span> <span class='m'>17,</span> <span class='m'>29,</span> <span class='m'>42,</span> <span class='m'>54,</span> <span class='h'>12</span><span class='m'>07,</span> <span class='m'>18,</span> <span class='m'>31,</span> <span class='m'>44,</span> <span class='m'>56,</span> <span class='h'>13</span><span class='m'>09,</span> <span class='m'>21,</span> <span class='m'>33,</span> <span class='m'>46,</span> <span class='m'>58,</span> <span class='h'>14</span><span class='m'>11,</span> <span class='m'>23,</span> <span class='m'>35,</span> <span class='m'>48,</span> <span class='h'>15</span><span class='m'>01,</span> <span class='m'>13,</span> <span class='m'>24,</span> <span class='m'>38,</span> <span class='m'>50,</span> <span class='h'>16</span><span class='m'>02,</span> <span class='m'>15,</span> <span class='m'>27,</span> <span class='m'>40,</span> <span class='m'>52,</span> <span class='h'>17</span><span class='m'>04,</span> <span class='m'>17,</span> <span class='m'>30,</span> <span class='m'>42,</span> <span class='m'>55,</span> <span class='h'>18</span><span class='m'>07,</span> <span class='m'>29,</span> <span class='h'>19</span><span class='m'>01,</span> <span class='m'>31,</span> <span class='m'>43,</span> <span class='m'>54,</span> <span class='h'>20</span><span class='m'>04,</span> <span class='m'>17,</span> <span class='m'>29,</span> <span class='m'>41,</span> <span class='m'>52,</span> <span class='h'>21</span><span class='m'>04,</span> <span class='m'>15,</span> <span class='m'>27,</span> <span class='m'>38,</span> <span class='m'>50,</span> <span class='h'>22</span><span class='m'>02,</span> <span class='m'>13,</span> <span class='m'>25,</span> <span class='m'>37,</span> <span class='m'>48,</span> <span class='h'>23</span><span class='m'>00,</span> <span class='m'>11,</span> <span class='m'>23,</span> <span class='m'>35,</span> <span class='m'>49,</span> </span></div>
В
HTML5
1
<span class='h'>06</span>
расположены часы, а в
HTML5
1
<span class='m'>08,</span>
минуты. Сейчас, если получать содержимое тега
HTML5
1
<span class='budmi_text_stop'>
получается, что сначала идет час, а потом все минуты для этого часа, т.е. так 06 ,08 ,20 и т.д, а как получить расписание, так чтобы сначала шел час - потом минута, потом снова час - минута, т.е. так 06 08, 06 20. и т.д.?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.10.2013, 19:06
Ответы с готовыми решениями:

Парсинг PHP simple_html_dom.php
парсю сайт с помощью simple_html_dom.php и вот там встретил такой div &lt;div class=&quot;msch_group&quot; multiplex_id=&quot;22&quot;&gt; ...

Парсинг php
Добрый день, я не так много работал с php но вот дали задание: Необходимо спарсить страницу: http://www.sberbank-ast.ru/purchaseList.aspx...

Парсинг php
Подскажите пожалуйста как спарсить отсюда http://78.107.35.76:7240/ &lt;Name&gt;Veche_Battle&lt;/Name&gt; то что между &gt; и &lt;.

9
112 / 112 / 18
Регистрация: 24.09.2013
Сообщений: 509
06.10.2013, 21:33
на код можно взглянуть?
1
1 / 1 / 0
Регистрация: 06.10.2013
Сообщений: 49
06.10.2013, 21:57  [ТС]
Вот мой код:
PHP
1
2
3
4
$data = file_get_html('http://m.proezd.by/stop?id=264');
foreach($data->find('span.budmi_text_stop') as $qwe) {
echo $qwe->innertext; 
}
0
112 / 112 / 18
Регистрация: 24.09.2013
Сообщений: 509
06.10.2013, 22:35
используйте алгоритм например такой:
1) в самом начале задаем пустую переменную $R
2) перебираем все спаны
3) как только натыкаемся на спан с классом h, присваиваем переменной $R значение т.е 06
4) перебираем дальше спаны с классом m, берем их значения и выводим их так echo $R." ".Значение.", "
5) как только попадается спан с классом h, опять присваиваем переменной $R значение т.е 07
и так далее по всему html
В итоге и получится 06 08, 06 20, 06 31, ..., 07 07, 07 17 и т.д
1
1 / 1 / 0
Регистрация: 06.10.2013
Сообщений: 49
06.10.2013, 22:43  [ТС]
Спасибо большое за помощь. Только мне немного не понятно, как это реализовать в коде. Можно какой-нибудь пример, как это сделать? Очень прошу вашей помощи.
0
112 / 112 / 18
Регистрация: 24.09.2013
Сообщений: 509
06.10.2013, 22:53
У меня ваш код вообще не работает. У вас видимо подключена библиотека парсинга, у меня её нету

Ну код примерно такой:
PHP
1
2
3
4
5
6
$R = "";
 
// Перебираем все span и делаем такие условия
if (класс спана равен h)    {$R = "значение спана"}
 
if (класс спана равен m)    {echo $R." ".значение спана.", "}
1
1 / 1 / 0
Регистрация: 06.10.2013
Сообщений: 49
07.10.2013, 19:46  [ТС]
Да у меня подключена библиотека парсинга simple_html_dom.php. Скачал отсюда http://sourceforge.net/project... lehtmldom/. Подключаю её с помощью:
PHP
1
include('simple_html_dom.php');
Спасибо за пример. Сейчас попробую.

Добавлено через 20 часов 47 минут
Попробовал написать, так как вы сказали. Вот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
include('simple_html_dom.php');
    set_time_limit(1000000);
    $data = file_get_html('http://m.proezd.by/stop?id=264');
    $R = ' ';
    foreach($data->find('span') as $s)
    {
        if ($s == ($data->find('span.h')))
        {
            $R = $s;
        }
        if ($s == ($data->find('span.m')))
        {
           echo $R." ".$s.", ";
        }
    }
Только он почему-то вообще ничего не выводит.
0
112 / 112 / 18
Регистрация: 24.09.2013
Сообщений: 509
07.10.2013, 20:23
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
include('simple_html_dom.php');
    set_time_limit(1000000);
    $data = file_get_html('http://m.proezd.by/stop?id=264');
    $R = "";
    foreach($data->find('span') as $s) {
        
        $Class = $s->class;
        
        if ($Class == "h") {
            $R = $s->plaintext;
        }
        
        if ($Class == "m") {
           $D = $s->plaintext;
           echo $R." ".$D;
        }
    }
 
?>
1
1 / 1 / 0
Регистрация: 06.10.2013
Сообщений: 49
07.10.2013, 20:29  [ТС]
Огромнейшее Вам спасибо. Вы очень меня выручили. Все работает, так как я хотел. Без Вашей помощи я бы не справился. Еще раз Огромнейшее Вам спасибо.
0
112 / 112 / 18
Регистрация: 24.09.2013
Сообщений: 509
07.10.2013, 20:30
Не за что)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.10.2013, 20:30
Помогаю со студенческими работами здесь

PHP парсинг
Всем привет! Возникла проблема, ранее все работало хорошо, просто в один прекрасный момент перестало. if($_SERVER=='POST'){...

Парсинг на php
Добрый день! Помогите составить маленький скрипт :) Есть сайт, страница - http://www.my-wowp.com/index/0-29 , на которой необходимо...

Парсинг PHP
На странице хтмл есть текст, ну с этим все понятно, я оформил, как надо. Все парсит копи, делит работает. А вот проблема с парсом нужной...

Парсинг отзывов на PHP
Здравствуйте. Нужно реализовать парсинг отзывов с: http://torg.mail.ru https://www.facebook.com https://market.yandex.ua ...

Не работает парсинг на PHP
Есть сайт http://oil-price.net/ , на его странице указана цена нефти WTI и Brent. Подскажите пожалуйста как можно выпарсить только цену...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru