Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
gigs
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 398
#1

Не могу доделать парсер - PHP

26.07.2013, 18:38. Просмотров 747. Ответов 3
Метки нет (Все метки)

Добрый день, помогите пожалуйста, я делаю парсер HTML с помощью библиотеки Simple HTML DOM Parser и мне нужно спарсить с этой страницы (www.sports.ru/stat/football/572/match/799960.html#online) HTML код который находится в <div class="two-commands">, то есть весь код от начала <div class="two-commands"> и до его конца </div>. Я делал так:

PHP
1
2
3
4
5
include 'simple_html_dom.php'; 
$html = file_get_html('http://www.sports.ru/stat/football/572/match/799960.html#online');
 
foreach($html->find('.two-commands') as $element)
       echo $element;
и мне вот так спарсило страницу
HTML5
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
<div class="two-commands">
<div class="command floatL">
<div class="img-box">
<img src='/images/object_45.1340554137.90342.jpg' alt='Сересо Осака' title='Сересо Осака' />
</div>
<div class="about-command">
<h2 class="titleH2"><a href="/tags/69914359.html" title="Сересо Осака">Сересо Осака</a></h2>
<div class="town">Осака</div>
<div class="form-now">
Текущая форма<br/>
<span class="matches-img"><a title="Сересо Осака&nbsp;&ndash;&nbsp;Нагоя Грампус&nbsp;2&nbsp;:&nbsp;1" class="dot gr-dot" href="/stat/football/358/match/771648.html"></a><a title="Джубило Ивата&nbsp;&ndash;&nbsp;Сересо Осака&nbsp;2&nbsp;:&nbsp;2" class="dot yw-dot" href="/stat/football/358/match/771659.html"></a><a title="Сересо Осака&nbsp;&ndash;&nbsp;Йокогама Ф. Маринос&nbsp;2&nbsp;:&nbsp;1" class="dot gr-dot" href="/stat/football/358/match/771665.html"></a><a title="Санфречче Хиросима&nbsp;&ndash;&nbsp;Сересо Осака&nbsp;1&nbsp;:&nbsp;0" class="dot rd-dot" href="/stat/football/358/match/771678.html"></a><a title="Сересо Осака&nbsp;&ndash;&nbsp;Саган Тосу&nbsp;4&nbsp;:&nbsp;1" class="dot gr-dot" href="/stat/football/358/match/771685.html"></a></span>
</div>
<div class="js-first-team">
</div>
</div>
</div>
<div class="command floatR">
<div class="img-box">
<img src='/images/object_72.1335162819.0113.jpg' alt='Манчестер Юнайтед' title='Манчестер Юнайтед' />
</div>
<div class="about-command">
<h2 class="titleH2"><a href="/tags/1046599.html" title="Манчестер Юнайтед">Манчестер Юнайтед</a></h2>
<div class="town">Манчестер</div>
<div class="form-now">
Текущая форма<br/>
<span class="matches-img"><a title="Арсенал&nbsp;&ndash;&nbsp;Манчестер Юнайтед&nbsp;1&nbsp;:&nbsp;1" class="dot yw-dot" href="/stat/football/52/match/481024.html"></a><a title="Манчестер Юнайтед&nbsp;&ndash;&nbsp;Челси&nbsp;0&nbsp;:&nbsp;1" class="dot rd-dot" href="/stat/football/52/match/481036.html"></a><a title="Манчестер Юнайтед&nbsp;&ndash;&nbsp;Суонси&nbsp;2&nbsp;:&nbsp;1" class="dot gr-dot" href="/stat/football/52/match/481048.html"></a><a title="Вест Бромвич&nbsp;&ndash;&nbsp;Манчестер Юнайтед&nbsp;5&nbsp;:&nbsp;5" class="dot yw-dot" href="/stat/football/52/match/481061.html"></a><a title="Йокогама Ф. Маринос&nbsp;&ndash;&nbsp;Манчестер Юнайтед&nbsp;3&nbsp;:&nbsp;2" class="dot rd-dot" href="/stat/football/52/match/797127.html"></a></span>
</div>
<div class="js-second-team">
</div>
</div>
</div>
<div class="game-info">
<div class="score js-match-score">— : —</div>
<div class="mB20 js-match-status">не начался</div>
<p><a href="/tags/1685210.html">Товарищеские матчи (клубы)</a></p>
<p>26 июля 2013, 14:00</p>
<p>
<span class="nowrap">Nagai Stadium</span>
</span>
</p>
</div>
</div>
все вроде нормально но оно не подгружает изображения, и там где img src='/images/object_45.1340554137.90342.jpg' должно еще быть имя домена то есть вот так img src='http://www.sports.ru/images/object_45.1340554137.90342.jpg'. Я вот не знаю что нужно дописать в коде парсера чтоб он подставлял имя домена в тег <img>. Помогите пожалуйста решить задачу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2013, 18:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не могу доделать парсер (PHP):

не могу доделать скрипт с проверкой формы и отправки на мыло!
Помогите пожалуйста с проверкой формы и отправки на мыло! &lt;?php function...

Не могу настроить парсер
Всем привет! Никак не могу сделать скрипт, который при нажатии на ссылку...

Не могу настроеить парсер
Ребят помогите пожалуйста с настройкой парсера, он настроен на выдачу рамблера...

Пишу парсер. не могу понять в чем дело
Здравствуйте! Необходима помощь. Пишу парсер на PHP, весь код могу вывести у...

Доделать Парсер BBcode
Здравствуйте. JS вставки тегов в textarea: function addedidor(tag) { ...

не могу доделать
Здравствуйте помогите доделать рестартер с сокетами не дружу но нужна проверка...

3
rus_dao
19 / 19 / 3
Регистрация: 26.07.2013
Сообщений: 61
27.07.2013, 14:15 #2
добрый!
предлагаю сделать так:
PHP
1
2
3
4
5
6
7
8
include 'simple_html_dom.php'; 
$html = file_get_html('http://www.sports.ru/stat/football/572/match/799960.html#online');
 
foreach($html->find('.two-commands') as $element)
    if (preg_match("|img\s+src='(/images[^']*)'|is", $element)) {
    $element = preg_replace("|img\s+src='/images|", "img src='http://www.sports.ru/images", $element);
    }
       echo $element;
1
gigs
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 398
02.08.2013, 11:41  [ТС] #3
спасибо, все работает. А я еще хотел спросить, что лучше использовать для парсинга, Simple HTML DOM Parser или с помощью обычного file_get_contents ?
0
rus_dao
19 / 19 / 3
Регистрация: 26.07.2013
Сообщений: 61
02.08.2013, 12:43 #4
Цитата Сообщение от gigs Посмотреть сообщение
спасибо, все работает. А я еще хотел спросить, что лучше использовать для парсинга, Simple HTML DOM Parser или с помощью обычного file_get_contents ?
на здоровье.
имхо использование различных утилит для парсинга дело личного вкуса или корпоративных "погремушек".
думаю Вам будет не менее интересно посмотреть и про "XPATH" и про "Simple XML"
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2013, 12:43
Привет! Вот еще темы с решениями:

не могу доделать.
составить программу для проверки утверждения: «Результатами вычислений по...

не могу доделать
привет всем)вот моя прога с прошлого года unit Unit1; interface uses ...

Не могу доделать
Вот код: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; using...

Не могу доделать цикл
Здравствуйте! Помомгите пожалуйста доделать цикл. Никак не могу додуматься как...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru