Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: еще 10 тысяч ведер и ... опять тянем url'ы со страниц :)
 
 автор: elenaki   (08.01.2007 в 16:09)   письмо автору
 
 

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


<TD valign='top'><img src='../images/dot_transpa.gif' width=14 height = 14 hspace = 2 border = 0'>
    <a href='mail_form.asp?email=2kappa@pel.forthnet.gr&id=35904'  target='_blank'>
    <img src='../images/icon_email.gif' hspace = 2 border = 0  alt='email'></a>
<a href='http://www.2kappa.gr'   target='_blank'><img src='../images/icon_url.gif' hspace = 2 border = 0 alt ='url'></a>
    <a href='vcard.asp?id=35904'  target='_blank'><img src='../images/icon_vcard.gif' hspace = 2 border = 0></a>
    <a href=../guide/313211.asp?id=35904&return=2111.asp#financial><img src='../images/icon_euro.gif' hspace = 2 border = 0></a>
    </TD>
    <TD bgcolor='#FFFFFF'  valign='top' width='230'  class='maintext2'><a href=../guide/313211.asp?id=35904&return=2111.asp><strong>2 КАППА Е.П.Е.</strong></a></TD>


я вытянула из них e-mail, id и название фирмы. а вот url никак не получается. т.е. можно вытянуть
все url из текста, это получается, но мне нужна привязка к конкретному id. мне никак не придумать,
как, зная id (или имя фирмы, сначала я его вытаскиваю, потом id, потом по id нахожу e-mail), найти
url? дело в том, что ссылка на e-mail (картинка ../images/icon_email.gif) может отсутствовать, ссылка
после url (картинка ../images/icon_euro.gif) тоже необязательна... обязательна ссылка на имени фирмы,
в которой упоминается id: <a href=../guide/313211.asp?id=35904&return=2111.asp>. есть идеи?

PS все это чудо потом у меня сохраняется в виде текста, разбитого | на поля с целью дальнейшего использования его в Excel и MySQL.

PPS можно было бы выбрать всю строку (хихихи, мастера - ставят align=left в строке!), начиная с
<TR ALIGN=LEFT> до </TR>, если бы эти грамотеи начинали бы так каждую строку! а то у них один
раз строка открыта (с позиционированием! чего, интересно?) и все, потом только закрывающие
тэги идут... бред какой-то

   
 
 автор: kasmanaft   (08.01.2007 в 17:45)   письмо автору
 
   для: elenaki   (08.01.2007 в 16:09)
 

Можно вот так попробовать:

<?
$text 
"<a href='mail_form.asp?email=2kappa@pel.forthnet.gr&id=35904'  target='_blank'> 
     <a href='http://www.2kappa.gr'   target='_blank'>
    <a href='vcard.asp?id=35904'  target='_blank'>
    <a href=../guide/313211.asp?id=35904&return=2111.asp#financial>
    <a href=../guide/313211.asp?id=35904&return=2111.asp>"
;
$id '35904';
preg_match_all("#<a href=['\"]?([^\s>]+id=".$id."[^\s>'\"]*)#is"$text$regs);
unset(
$regs[0]);
echo 
'<pre>';
print_r($regs);
?>

Так вырежутся все ссылки, где встречается нужный id, а какую именно из них нужно выбрать я так и не понял :)

   
 
 автор: elenaki   (08.01.2007 в 19:29)   письмо автору
 
   для: kasmanaft   (08.01.2007 в 17:45)
 

в том-то и дело, что мне нужна ссылка, единственная без GET-параметров - только такие ссылки ведут на сайты фирм. и только такие ссылки не имеют никаких больше зацепок, позволяющих понять, к какому id они относятся. нахождение в той же строке таблицы (т.е. между <tr></tr>) могло бы дать такой результат, но ... открывающего тэга <tr> нам не дали :( вообще удивляюсь, как браузер эту таблицу нарисовал? может, пройтись сначала по коду и заменить все </tr><td> на </tr><tr><td>? тогда хоть будет кусок логичного кода... завтра попробую.

   
 
 автор: kasmanaft   (08.01.2007 в 21:18)   письмо автору
 
   для: elenaki   (08.01.2007 в 19:29)
 

А можно взглянуть на эту страничку?

   
 
 автор: elenaki   (09.01.2007 в 10:09)   письмо автору
 
   для: kasmanaft   (08.01.2007 в 21:18)
 

вот это чудо. первый фрагмент - с 30-й по 50 строку. но переводы строк я сама поставила,
там весь код в одну строку был. зато нашла, чем разделяются фрагменты - есть строка:


<tr><td colspan='8'  bgcolor='#E2E0D3' ><img src='dot_transpa.gif' width='6' height='1'></td></tr>


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

   
 
 автор: kasmanaft   (09.01.2007 в 14:38)   письмо автору
 
   для: elenaki   (09.01.2007 в 10:09)
 

>> можно по этой строке разделить текст на фрагменты
Не дочитал до конца сообщение, полез сразу страничку смотреть (мое любимое занятие - граббить все подряд :) )
Тоже самое хотел Вам предложить - тут, наверное, лучше варианта не придумать. Потому что, как я понял, урлы имеются не у каждой фирмы, поэтому может возникнуть путаница ...

   
 
 автор: elenaki   (09.01.2007 в 15:13)   письмо автору
 
   для: kasmanaft   (09.01.2007 в 14:38)
 

все! я сделала! сграбила весь контент, не только url'ы и mail'ы...
нехорошо, конечно, а что делать? мне без контента работать не с чем, а сочинять свой шеф не в состоянии...

если нужно - выложу скрипт.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования