|
|
|
| Помогите с парсером….
Есть страница www.имя_сайта.ru
На этой странице хранятся видеоролики….
На каждой странице по 10-15 шт
Кусок html постоянно повторяется только значения меняются
Нужно выдернуть те элементы которые отмечены жирным шрифтом….
2 суток уже мучаюсь толком ничего не получается….
Выдергиваются только отдельно элементы а со всем куском не могу сработаться : (
<div class="audioRow" id="audio38857975" style='margin:0px auto;'>
<table style="width:575px" style='margin-left:10px;'><tbody>
<tr><td style="width: 18px; vertical-align:top">
<img class="playimg" onclick="return operate(38857975,1441,4137954,'55c3f47893',228);" id="imgbutton38857975" nosorthandle="true" src="images/play.gif"/>
</td>
<td style="width: 515px;"><div style='float:left'>
<b id="performer38857975">Dimas</b> - <span id="title38857975">Выстрел в цель!!!</span> <small>(<a href='id4137954'>Лена</a>)</small></div>
<div class="duration">3:48</div>
</td>
<td style="width: 40px;"><a class='addAudioLink' href='video.php?act=add&add=0&gid=0&aid=38857975&oid=4137954&hash=f483045f7b48110b720c190e6ef4e1ce'>Добавить</a>
</td>
</tr>
<tr><td></td>
<td>
<div style="height:14px;">
<div id="line38857975" class="playline"></div>
<div id="toddler38857975" class="toddler"></div>
<div id="player38857975" style="display: none;" class="playerClass"></div>
</div>
</td>
<td></td>
</tr>
</tbody>
</table>
<div id="lyrics38857975"></div>
</div>
|
Или можно нормальную ссылку по созданию грабера страниц то ничего путного не нашел….: ( | |
|
|
|
|
|
|
|
для: Crayzers
(26.09.2008 в 03:00)
| | Здравствуйте Crayzers. Я очень много раз сталкивался с этим.. есть пару идей, но к сожалению, код будет грамостким. Вообще лучше тут использвоать регулярные выражения, но я с мини только начал работаь, опыта мало что б вот так прямо сейчас написать вам код.
Вот смысл моей идеи. Парсим сраницу я так понимаю с следующим кодом котоый вы указали. И с помощью strpos и substr вырезаем те элементы которые нам не обходимы. И заносим их в нужные нам переменные.
Снача нужно посмотреть внимательно код страницы. Вот что я придумал:
<?php
$contents = "<div class=\"audioRow\" id=\"audio38857975\" style='margin:0px auto;'>
<table style=\"width:575px\" style='margin-left:10px;'><tbody>
<tr><td style=\"width: 18px; vertical-align:top\">
<img class=\"playimg\" onclick=\"return operate(38857975,1441,4137954,'55c3f47893',228);\" id=\"imgbutton38857975\" nosorthandle=\"true\" src=\"images/play.gif\"/>
</td>
<td style=\"width: 515px;\"><div style='float:left'>
<b id=\"performer38857975\">Dimas</b> - <span id=\"title38857975\">Выстрел в цель!!!</span> <small>(<a href='id4137954'>Лена</a>)</small></div>
<div class=\"duration\">3:48</div>
</td>
<td style=\"width: 40px;\"><a class='addAudioLink' href='video.php?act=add&add=0&gid=0&aid=38857975&oid=4137954&hash=f483045f7b48110b720c190e6ef4e1ce'>Добавить</a>
</td>
</tr>
<tr><td></td>
<td>
<div style=\"height:14px;\">
<div id=\"line38857975\" class=\"playline\"></div>
<div id=\"toddler38857975\" class=\"toddler\"></div>
<div id=\"player38857975\" style=\"display: none;\" class=\"playerClass\"></div>
</div>
</td>
<td></td>
</tr>
</tbody>
</table>
<div id=\"lyrics38857975\"></div>
</div>
";
// создаем копии старницы, что б потом вырезать с каждой по эллементу.
$operate = $contents; // Копия для "38857975,1441,4137954,'55c3f47893',228"
$bid = $contents; // Копия для "Dimas"
$spanid = $contents; // Копия для "Выстрел в цель!!!"
$small = $contents; // Копия для "Лена"
$duration = $contents; // Копия для "3:48"
// Вырезаем "38857975,1441,4137954,'55c3f47893',228"
$pos = strpos($operate, "operate(");
$operate = substr($operate, $pos);
$pos = strpos($operate, ");");
$operate = substr($operate, 8, $pos -8);
$operate = trim($operate);
// Вырезаем "Dimas"
$pos = strpos($bid, "<div style='float:left'>");
$bid = substr($bid, $pos);
$pos = strpos($bid, "</b>");
$bid = substr($bid, 0, $pos );
$bid = strip_tags($bid);
$bid = trim($bid);
// Вырезаем "Выстрел в цель!!!"
$pos = strpos($spanid, "<span id=");
$spanid = substr($spanid, $pos);
$pos = strpos($spanid, "</span>");
$spanid = substr($spanid, 0, $pos );
$spanid = strip_tags($spanid);
$spanid = trim($spanid);
// Вырезаем "Лена"
$pos = strpos($small, "<a href='id");
$small = substr($small, $pos);
$pos = strpos($small, "</a>");
$small = substr($small, 0, $pos );
$small = strip_tags($small);
$small = trim($small);
// Вырезаем "3:48"
$pos = strpos($duration, "<div class=\"duration\">");
$duration = substr($duration, $pos);
$pos = strpos($duration, "</div>");
$duration = substr($duration, 0, $pos );
$duration = strip_tags($duration);
$duration = trim($duration);
// Вывод
echo $operate." | ".$bid." | ".$spanid." | ".$small." | ".$duration ;
?>
|
и вот что у меня получилось :)
38857975,1441,4137954,'55c3f47893',228 | Dimas | Выстрел в цель!!! | Лена | 3:48
|
Спасибо за внимание. Обращайтесь еще.. | |
|
|
|
|
|
|
|
для: AlexDIXI
(26.09.2008 в 09:47)
| | Ну если ориентироваться на постоянство атрибутов тегов, то можно и проще:
<?
$contents = substr($contents,strpos($contents,"(")+1,strpos($contents,"addAudioLink"));
$s1 = substr($contents,0,strpos($contents,")"));
$contents = substr($contents,strpos($contents,"performer38857975")+19);
$s2 = substr($contents,0,strpos($contents,"</b>"));
$contents = substr($contents,strpos($contents,"title38857975")+15);
$s3 = substr($contents,0,strpos($contents,"</span>"));
$contents = substr($contents,strpos($contents,"id4137954")+11);
$s4 = substr($contents,0,strpos($contents,"</a>"));
$contents = substr($contents,strpos($contents,"duration")+10);
$s5 = substr($contents,0,strpos($contents,"</div>"));
echo $s1." - ".$s2." - ".$s3." - ".$s4." - ".$s5;
|
| |
|
|
|
|
|
|
|
для: sim5
(26.09.2008 в 10:16)
| | id наверника меняются рэндомно. И тогда этот скрипт не сработает, а мой скрипт работаеть будет даже если ID меняете.. | |
|
|
|
|
|
|
|
для: AlexDIXI
(27.09.2008 в 12:28)
| | Разумно, но ничего не стоит удалить переводы строк и табуляцию, вытянув текст в строку, и взять за основу поиска не номера id, и тогда... Короче, это я к тому, что ваш код может быть намного короче. | |
|
|
|
|
|
|
|
для: sim5
(27.09.2008 в 12:50)
| | Угу согласен. Я сделал так что б работало, если постаратся то получится нечто короче.. | |
|
|
| |
|