Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Извлечения URL из HTML


Автор: Хрипа 5.2.2008, 16:43
Допусти есть нечто подобное:
Код

<table cellspacing=0 cellpadding=2>
<tr><td><b><a href="?type=town&name=%C4%EE%ED%E5%F6%EA&fi=2884&la=2264&code=6864&template=AviaTemplate&id=34519&req=findtown&town=Дон">Донецк</a></b> (Украина)</td><td align=right><b>&nbsp;&nbsp; 9 км</b></td></tr><tr><td><b><a href="?type=town&name=%CC%E0%F0%E8%F3%EF%EE%EB%FC&fi=2860&la=2247&code=8114&template=AviaTemplate&id=34519&req=findtown&town=Дон">Мариуполь</a></b> (Украина)</td><td align=right><b>&nbsp;&nbsp; 47 км</b></td></tr><tr><td><b><a href="?type=town&name=%D2%E0%E3%E0%ED%F0%EE%E3&fi=2832&la=2331&code=9483&template=AviaTemplate&id=34519&req=findtown&town=Дон">Таганрог</a></b> (Российская Федерация)</td><td align=right><b>&nbsp;&nbsp; 119 км</b></td></tr><tr><td><b><a href="?type=town&name=%C3%F3%EB%FF%E9%EF%EE%EB%E5&fi=2859&la=2176&code=7240&template=AviaTemplate&id=34519&req=findtown&town=Дон">Гуляйполе</a></b> (Украина)</td><td align=right><b>&nbsp;&nbsp; 122 км</b></td></tr></table><tr><td colspan=3><table border=0 cellpadding=0><tr><td><img src=http://img.gismeteo.ru/images/lt.gif></td><td valign=middle>&nbsp;<a href="/?req=findtown&town=Дон">Назад</a></td></tr>
<

Как мне от сюда извлеч урлы ? все даже картинки 
 smile 

Автор: Ghirik 5.2.2008, 17:35
Я вот так извлекал в php:
Код

$parsed = '';
$ourtext = @file_get_contents($_POST['txt0']);
$ourtext = addslashes($ourtext);
    preg_match_all("/http:\/\/[A-Z0-9_\-\.]*/i", $ourtext, $matches);
    if (count($matches)) {
        $matches = $matches[0];
        $nummatches = count($matches);
        foreach($matches as $match) {
            if (strpos($match, "www.kto-to.ru") !== false) continue; / игнорируемый адрес
            if (strpos($match, "www.kuda-to.ru") !== false) continue; / игнорируемый адрес
            $parsed = $parsed.$match.';';
        }
    }


В JavaScript, шаблон похожий...

Автор: Хрипа 5.2.2008, 18:46
Ghirik, Дело в том что тут не совсем URL тут запись вида : ?type=town&name=%C4%EE%ED%E5%F6%EA&fi=2884&la=2264&code=6864&template=AviaTemplate&id=34519&req=findtown&town=Дон
я не могу составить шаблон что бы подобное извлеч!

Автор: Хрипа 5.2.2008, 19:03
type(.|")*
type(.|>)*
type(&|=|.)*
((?:?|&|=|.)*)
Пробывал массу различных шаблонов но не как не подохит

Автор: Ghirik 5.2.2008, 19:27
Ну а по кавычкам? href="......."

Добавлено @ 19:30
Типа как то так:
/http:\"\.*\"/gi

Автор: Dr.Zlo 5.2.2008, 19:32
Если я правильно понял задачу, то вот:

Код

//извлекаем href из ссылки
var links = document.getElementById('айди_элемента_с_которым_работаем').getElementsByTagName('a')

for(var i=0; i<links.length; i++){
alert(links[i].href)
}
//извлекаем src картпнок
var imgs = document.getElementById('айди_элемента_с_которым_работаем').getElementsByTagName('img')

for(var i=0; i<imgs.length; i++){
alert(imgs[i].src)
}

Автор: Хрипа 5.2.2008, 19:33
Ghirik, не выдерает в масив всё что между ковычек пробывал вот таким выражением:
href="((?:.)*)
Может что-то не так делаю помогите пожалуйста ))

Добавлено через 1 минуту и 23 секунды
Dr.Zlo, данный текст не есть Документом это большая строка полученная Ajax запросом
Задача в том что бы пропарсить документ на ссылки

Добавлено через 3 минуты и 46 секунд
ссылки какого вида я привёл выше примером

Автор: Ghirik 5.2.2008, 19:38
http://www.softtime.ru/info/articlephp.php?id_article=42, синтаксис посмотрите, там вроде всё есть...


Цитата

href="((?:.)*)


Во первых, заднюю кавычку нужно обязательно показывать, во вторых, все спец символы нужно закрывать обратными слэшами.

Добавлено через 1 минуту и 7 секунд
Цитата

Если я правильно понял задачу, то вот:


Нет, не правильно, там не URL-ы а билеберда всякая....

Автор: Хрипа 5.2.2008, 19:41
Ghirik, href=\"((?:.)*)\" не работает
Кстати  я знаю примочки регулярных выражений в php уже бы довно получил данные между двумя тегами или ещё чего а вот в JS возвращает бпер какой-то!!
Может кто-то пример кинет кто много работал с регами JS ?

Добавлено @ 19:45
Ghirik, получается задача в том что бы извлеч все что между href="...." в массив или обьект
что бы можно было работать с этим потом! 
Код:

Код

                var reg = new RegExp('href=\"((?:.)*)\"',"igm");
                reg.multiline = true;
                var ars = reg.exec(result[0]);
                document.write(ars[0]);

На выходе:
Код

href="?type=town&name=%C4%EE%ED%E5%F6%EA&fi=2884&la=2264&code=6864&template=AviaTemplate&id=34519&req=findtown&town=?">???a></b> (???/td><td align=right><b>&nbsp;&nbsp; 9 ?/b></td></tr><tr><td><b><a href="?type=town&name=%CC%E0%F0%E8%F3%EF%EE%EB%FC&fi=2860&la=2247&code=8114&template=AviaTemplate&id=34519&req=findtown&town=?">???</a></b> (???/td><td align=right><b>&nbsp;&nbsp; 47 ?/b></td></tr><tr><td><b><a href="?type=town&name=%D2%E0%E3%E0%ED%F0%EE%E3&fi=2832&la=2331&code=9483&template=AviaTemplate&id=34519&req=findtown&town=?">???/a></b> (??? ????)</td><td align=right><b>&nbsp;&nbsp; 119 ?/b></td></tr><tr><td><b><a href="?type=town&name=%C3%F3%EB%FF%E9%EF%EE%EB%E5&fi=2859&la=2176&code=7240&template=AviaTemplate&id=34519&req=findtown&town=?">????a></b> (???/td><td align=right><b>&nbsp;&nbsp; 122 ?/b></td></tr></table><tr><td colspan=3><table border=0 cellpadding=0><tr><td><img src=http://img.gismeteo.ru/images/lt.gif></td><td valign=middle>&nbsp;<a href="/?req=findtown&town=?">??</a></td></tr></table></td></tr><tr><td colspan=3><table border=0 cellpadding=0><tr><td><img src=http://img.gismeteo.ru/images/ltlt.gif></td><td valign=middle>&nbsp;<a href=index.php>?? ??a></td></tr></table></td></tr><tr><td colspan=3>&nbsp;</td></tr><table border="0" cellpadding="0" cellspacing="0" width="100%"


Добавлено @ 19:50
Проблема в том что оно не извлекает а возвращает полный бред!
 PHP возврашает всё по шаблону в многомерный массив а тут непонятно что!

Автор: Ghirik 5.2.2008, 19:57
А-а-а..... дак вам вообще не то нужно.... smile  smile  smile

Добавлено через 52 секунды
Счас сделаю.....

Автор: Хрипа 5.2.2008, 19:59
Ghirik, Может поможите примером как это реализовуется на JS ?
Того что я прочёл массу документации и так ничего не нашол.  smile

Добавлено через 3 минуты
Спасибо smile

Автор: Ghirik 5.2.2008, 20:13
Этож надо так тупить!!!!! smile 

Вот:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<title>Title block</title>
<script type="text/javascript">
<!--
function getHref() {
    var href;
    var a = document.getElementById('table1').getElementsByTagName('a');
    for (var i = 0; i < a.length; i++) {
        href = a[i].href;
        document.getElementById('p1').innerHTML += href + '<br>';
    }
}
//-->
</script>
</head>
<body>
<p><input type="button" value="Кнопка" name="B1" onclick="getHref()"></p>
<table border="1" width="100%" id="table1">
<tr><td><b><a href="?type=town&name=%C4%EE%ED%E5%F6%EA&fi=2884&la=2264&code=6864&template=AviaTemplate&id=34519&req=findtown&town=Дон">Донецк</a></b> (Украина)</td><td align=right><b>&nbsp;&nbsp; 9 км</b></td></tr><tr><td><b><a href="?type=town&name=%CC%E0%F0%E8%F3%EF%EE%EB%FC&fi=2860&la=2247&code=8114&template=AviaTemplate&id=34519&req=findtown&town=Дон">Мариуполь</a></b> (Украина)</td><td align=right><b>&nbsp;&nbsp; 47 км</b></td></tr><tr><td><b><a href="?type=town&name=%D2%E0%E3%E0%ED%F0%EE%E3&fi=2832&la=2331&code=9483&template=AviaTemplate&id=34519&req=findtown&town=Дон">Таганрог</a></b> (Российская Федерация)</td><td align=right><b>&nbsp;&nbsp; 119 км</b></td></tr><tr><td><b><a href="?type=town&name=%C3%F3%EB%FF%E9%EF%EE%EB%E5&fi=2859&la=2176&code=7240&template=AviaTemplate&id=34519&req=findtown&town=Дон">Гуляйполе</a></b> (Украина)</td><td align=right><b>&nbsp;&nbsp; 122 км</b></td></tr></table><tr><td colspan=3><table border=0 cellpadding=0><tr><td><img src=http://img.gismeteo.ru/images/lt.gif></td><td valign=middle>&nbsp;<a href="/?req=findtown&town=Дон">Назад</a></td></tr>
</table>
<p id="p1">
</p>
</body>
</html>


Добавлено через 2 минуты и 30 секунд
В этом примере, вначале получаем массив элементов "<a></a>", а потом в цикле складываем атрибуты "href" в нужное место.

Автор: Хрипа 5.2.2008, 20:17
Ghirik, не вы не поняли ))
я Получил Ajax запросом страничку она хранится в переменной. а А это текст и в нём только регулярными выражениями работать! так то я получил бы и сам тут ничего трудного! )
А вот насчёт работы с регулярными выражениями ? П/С DOM не подходит!

Автор: Ghirik 5.2.2008, 20:24
Цитата

Ghirik, не вы не поняли ))


 smile  smile  smile 

Почему только регуляркой? Если у вас в переменной html, то можно через getElementsByTagName

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

Автор: Хрипа 5.2.2008, 20:30
Код

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>GISMETEO.?? ?? ????, ????? ????????, ??? ?????? ???? ???? ?????????</title>
    <style type="text/css">@import "style.css";</style>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <meta name="description" content="????? ????, ??? ??????????
    <meta name="keywords" content="??? ?? ????????????">
  </head>

<body topmargin=10 leftmargin=10 marginwidth=0 marginheight=0 bgcolor=#ffffff>
<table border="0"  cellspacing="0" cellpadding="0" width="775">
    <tr><td colspan="3"> 
        <table border="0"  cellspacing="0" cellpadding="0" width="775" height="67">
           <tr>
                      <td width="300" height="64"><a href="/"><img src="img/logo.gif" width="246" height="56" border=0 alt="Gismeteo.Widget"></a></td><img height=1 width=1 src="http://d3.c7.b2.a1.top.list.ru/counter?id=1209273"/><img src="http://counter.rambler.ru/top100.cnt?1079107" width=1 height=1><img height=1 width=1 src="http://da.cd.b0.a1.top.list.ru/counter?id=1104443"/><script type="text/javascript">document.write("<img src='http://counter.yadro.ru/hit?r" + escape(document.referrer) + ((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth)) + ";u" + escape(document.URL) + ";" + Math.random() + "' width=1 height=1 alt=''>")</script></td><td align="right"><script language=JavaScript> document.write('<IF'+'RAME src=http://a.gismeteo.ru/show.php?pl=1&bt=1&ref='+escape(document.location.href)+'&ac='+ Math.round(Math.random()*100000)+' width=468 height=60 frameborder=0 vspace=0 hspace=0 marginwidth=0'+ ' marginheight=0 scrolling=no></IF'+'RAME>'); </script></td>
                  </tr>
        </table>
<table border=0 width=775>
<tr><td colspan=2 height=6></td></tr>
<tr>
<td align=left nowrap><b>GISMETEO:</b></a> <a href="http://www.gismeteo.ru"><b>????0 ??a></b> | <a href="http://month.gismeteo.ru"><b>? ???></b> | <a href="http://news.gismeteo.ru"><b>???a></b> | <a href="http://auto.gismeteo.ru"><b>??a></b> | <a href="http://tourism.gismeteo.ru"><b>??</a></b> | <a href="http://informer.gismeteo.ru"><b>???/a></b> | <a href="http://fan.gismeteo.ru"><b>??a></b> | <a href="http://www.gismeteo.ru/pda.htm"><b>PDA</a></b> | <a href="http://www.gismeteo.ru/wap.htm"><b>WAP</a></b></td>
<td align=right align=right><a href="javascript:document.href" onClick="window.external.AddFavorite(document.location, document.title); return false">??? ????/a>&nbsp;</td>
</tr>
</table>
<table border="0"  cellspacing="0" cellpadding="0" width="775">
    </td></tr> 
    <tr><td height="10" bgcolor="ffffff" colspan="3"></td></tr>
    <tr><td valign="top">
          <table border="0"  cellspacing="0" cellpadding="0">
         <tr><td bgcolor="ffffff" width="240">
          <table border="0"  cellspacing="0" cellpadding="0" width="240">
            <tr><td height="19" class="title">&nbsp;&nbsp;&nbsp;????td></tr>
            <tr><td height="4" bgcolor="#D4D8EC"></td></tr>
            <tr><td>
            <table border="0"  cellspacing="0" cellpadding="0">
            <tr><td height="5"></td></tr>
            <tr><td>??????? <b>Gismeteo.??- ?? ????</b>, ?????????? ?? ?????. <a href="about.php">????.</a></td></tr>
            <tr><td height="10"></td></tr>
            </table>
            </td></tr>
            <tr><td height="19" bgcolor="red" class="title2">&nbsp;&nbsp;&nbsp;???/td></tr>
            <tr><td height="4" bgcolor="#FFDFDF"></td></tr>
            <tr><td height="4"></td></tr>
            <tr><td width="240" align="center"><script language=JavaScript> 
<!--
document.write('<IF'+'RAME src=http://a.gismeteo.ru/show.php?pl=1&bt=5&ref='+escape(document.location.href)+'&ac='+ Math.round(Math.random()*100000)+
' width=240 height=400 frameborder=0 vspace=0 hspace=0 marginwidth=0'+ ' marginheight=0 scrolling=no></IF'+'RAME>');
-->
</script></td></tr>
            <tr><td height="8"></td></tr> 
            <tr><td height="19" class="title">&nbsp;&nbsp;&nbsp;???????/td></tr>
            <tr><td height="4" bgcolor="#D4D8EC"></td></tr>
            <tr><td>
<table border="0" cellpadding="0" cellspacing="0" style="padding:5 5 0 5">
    <tr>
    <td class='newsbody'>
  <img src="img/pimpa.gif" width="13" height="13">&nbsp;<a class='newsmore' href='./news.php?id=3914'>                            ?????????, ??? ??-??a><br><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a class='newsmore' href='./news.php?id=3915'>                            ?? ????? ????? ????</a><br><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a class='newsmore' href='./news.php?id=3916'>                            ??? ???? ?? ?? ??/a><br><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a class='newsmore' href='./news.php?id=3917'>                            ?????? - ?? ????????? ?????/a><br><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a class='newsmore' href='./news.php?id=3918'>                            Sky Express ?? ?????? ??</a><br></td>
</tr>
                    <tr><td height="5"></td></tr>
</table>
            </td></tr>
<!--
            <tr><td height="10"></td></tr>
            <tr><td height="19" class="title">&nbsp;&nbsp;&nbsp;????? ??/td></tr>
            <tr><td height="4" bgcolor="#D4D8EC"></td></tr>
            <tr><td  width="245">
                      <table cellpadding="0" cellspacing="0" border="0" class="news" style="padding: 5 0 0 0">
                        <tr><td><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a href='http://www.tgt.ru/vip.php'>VIP-??</td></tr>
                        <tr><td><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a href='http://www.tgt.ru/strah.php'>????/a></td></tr>
                        <tr><td><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a href='http://www.tgt.ru/cards.php?id=0'>??????/a></td></tr>
                        <tr><td><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a href='http://www.tgt.ru/sata.php'>???????</td></tr>
                        <tr>
                          <td height="5"></td>
                        </tr>
                      </table>
-->
            </td></tr>
            <tr><td height="4"></td></tr>
            <tr><td height="19" class="title">&nbsp;&nbsp;&nbsp;???</td></tr>
            <tr><td height="4" bgcolor="#D4D8EC"></td></tr>
            <tr><td  width="245">
                      <table cellpadding="0" cellspacing="0" border="0" class="news" style="padding: 5 0 0 0">
                        <tr><td><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a href='about.php'>???? ???a><br><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a href='http://www.gismeteo.ru/guestbook.htm'>?????/a><br><img src="img/pimpa.gif" width="13" height="13">&nbsp;<a href='mailto:korolkow@gismeteo.ru'>???? ???a></td></tr>
                        <tr>
                          <td height="5"></td>
                        </tr>
                      </table>
            </td></tr>
          </table>
        </td></tr>
          </table>
        </td>
    <td width="10" bgcolor="ffffff"></td>
    <td width="515" valign="top">
            <table border="0"  cellspacing="0" cellpadding="0" width="525">
                <tr><td height="19" class="title">&nbsp;&nbsp;&nbsp;??????/td></tr>
                <tr><td height="4" bgcolor="#D4D8EC"></td></tr>
                <tr><td height="5"></td></tr>
                <tr>
                  <td align="center">
<center><b>????????? ???<br><font size="+1"<b>???b></font></center><table cellspacing=0 cellpadding=2><tr><td><b><a href="?type=town&name=%C4%EE%ED%E5%F6%EA&fi=2884&la=2264&code=6864&template=AviaTemplate&id=34519&req=findtown&town=?">???a></b> (???/td><td align=right><b>&nbsp;&nbsp; 9 ?/b></td></tr><tr><td><b><a href="?type=town&name=%CC%E0%F0%E8%F3%EF%EE%EB%FC&fi=2860&la=2247&code=8114&template=AviaTemplate&id=34519&req=findtown&town=?">???</a></b> (???/td><td align=right><b>&nbsp;&nbsp; 47 ?/b></td></tr><tr><td><b><a href="?type=town&name=%D2%E0%E3%E0%ED%F0%EE%E3&fi=2832&la=2331&code=9483&template=AviaTemplate&id=34519&req=findtown&town=?">???/a></b> (??? ????)</td><td align=right><b>&nbsp;&nbsp; 119 ?/b></td></tr><tr><td><b><a href="?type=town&name=%C3%F3%EB%FF%E9%EF%EE%EB%E5&fi=2859&la=2176&code=7240&template=AviaTemplate&id=34519&req=findtown&town=?">????a></b> (???/td><td align=right><b>&nbsp;&nbsp; 122 ?/b></td></tr></table><tr><td colspan=3><table border=0 cellpadding=0><tr><td><img src=http://img.gismeteo.ru/images/lt.gif></td><td valign=middle>&nbsp;<a href="/?req=findtown&town=?">??</a></td></tr></table></td></tr><tr><td colspan=3><table border=0 cellpadding=0><tr><td><img src=http://img.gismeteo.ru/images/ltlt.gif></td><td valign=middle>&nbsp;<a href=index.php>?? ??a></td></tr></table></td></tr><tr><td colspan=3>&nbsp;</td></tr><table border="0" cellpadding="0" cellspacing="0" width="100%">
 <tbody><tr><td class="title" height="19">&nbsp;&nbsp;&nbsp;?????? ????/td></tr>
 <tr><td bgcolor="#d4d8ec" height="4"></td></tr>
 <tr><td height="8"></td></tr>
 <!-- tgt code -->
 <tr><td>
            ? ?? ?????? ???? ?? ???????? ?????
            C?? ????? ? <b>????? ???????? ??????!</b>
            ??? ??????? ????? ???? ???? ?bsp;?? ??sp;??????
 </td></tr>
 <tr><td height="8"></td></tr>
 <tr><td>
        <style type="text/css">
            #tgt-plane { padding: 10px 0px; }
            #tgt-button { padding: 20px 0px 10px 0px; }
            #tgt-button-bg { height: 51px; background: #0E6CBA url('img/arrow-right-2.gif') top right no-repeat; }
            #tgt-button-bg div { padding: 14px 30px 0px 14px; }
            #tgt-frame {border: 1px solid #F00}
        </style>
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
            <tr valign="top">
                <td width="7%">
                    &nbsp;
                </td>
                <td id="tgt-plane" width="51%">
                    <a href="http://booking.avia.gismeteo.ru/flight/index.asp"><img border="0" src="img/plane-2.jpg" width="201" height="71" alt="?????? /></a><br />
                </td>
                <td id="tgt-button" width="35%">
                    <form name="booking" action="http://booking.avia.gismeteo.ru/flight/index.asp" method="get">
                        <div id="tgt-button-bg"><div>
                            <input type="submit" value="?? ????
                        </div></div>
                    </form>
                </td>
                <td id="tgt-button" width="7%">
                    &nbsp;
                </td>
            </tr>
        </table>
</td></tr>
<!-- /tgt code -->
<tr><td bgcolor="#d4d8ec" height="4"></td></tr>
<tr><td height="8"></td></tr>
<tr><td>?? ??????? <b><a href="http://www.tgt.ru/" target="_blank">??????</a></b>.</td></tr>
</tbody></table>            </td></tr>        
            <tr><td height="5" colspan="3"></td></tr>    
      </table>
       </td>
       </tr>
       <tr><td height="10" bgcolor="ffffff" colspan="3"></td></tr>
       <tr><td height="2" bgcolor="#D4D8EC" colspan="3"></td></tr>
       <tr><td height="5" bgcolor="ffffff" colspan="3"></td></tr>    
       <tr><td class="text" colspan="3">Copyright ? 2007, <A href="http://www.gismeteo.ru" target=_blank>Gismeteo.Ru</a></td></tr>
       <tr><td height="5" bgcolor="ffffff" colspan="3"></td></tr>
       <tr><td height="7" bgcolor="#0867B5" colspan="3"></td></tr>
       <tr><td height="3" bgcolor="#D4D8EC" colspan="3"></td></tr>
</table>
<p><a href="http://top100.rambler.ru/top100/"><img src="http://top100-images.rambler.ru/top100/banner-88x31-rambler-blue.gif" alt="Rambler's Top100" width=88 height=31 border=0></a>&nbsp;&nbsp;<a target=_top href="http://top.mail.ru/jump?from=1209273"><img SRC="http://d3.c7.b2.a1.top.list.ru/counter?id=1209273;t=231;l=1" border=0 height=31 width=88 alt="???Mail.ru"/></a>&nbsp;&nbsp;<a href="http://www.liveinternet.ru/click" target=_blank><img src="http://counter.yadro.ru/logo?12.11" border=0 width=88 height=31 alt="" title="LiveInternet: ?????????24 ?, ?????4 ? ????"></a></p>
<p><a href="stat.htm"><img src="http://dyn.gismeteo.ru/cgi-bin/mmcount3.dll?config=avia&fgcolor=B56708&bgcolor=FFFFFF&small=1" border=0></a></p>
</body>

</html>



Добавлено через 1 минуту
имя переменной: Server.responseText;

Автор: Ghirik 5.2.2008, 20:32
Если вам вернулся ответ в переменную response, то так

Код

var a = response.getElementsByTagName('a');


 можно достать все тэги "a" в массив "a"

Добавлено через 8 минут и 54 секунды
Хрипа, не понял, это Вы что выложили? Там нарушен формат html. Так и есть в оригинале? Если html нарушен, то может и кавычек не быть, значит ни каким регулярным выражением не достать. smile 
На сколько я помню в ajax-овском респонсе возвращается строковое значение.

Автор: Ghirik 5.2.2008, 20:47
Я вставил вашу страницу в html-редактор, там во многих местах нет кавычек, поэтому веся разметка сбита. Это вы сами просто что-то вырезали, или такая страница и есть?

Автор: Хрипа 5.2.2008, 20:52
Вот именно текстовое значения а не документ. Поэтому Всякие getElement не работают!
Резать надо регами а я немогу нефига сделать! так как либо руки корявые либо нет документации нормальной, да и работает оно по странному да и вся документация на всех сайтах оденнаковая.

Добавлено через 33 секунды
Ghirik, http://avia.gismeteo.ru/avia.php?id=34519&town=%C4%EE&req=findtown

Добавлено через 3 минуты и 35 секунд
Мне надо выташить ссылки с http://avia.gismeteo.ru/avia.php?id=34519&town=%C4%EE&req=findtown которые в таблице Список ближайших аэропортов к городу:

После чего бежать в цикле и выдерать по ним погоду! а я немогу не как получить ссылки так как регулярные выражения возвращают совсем не то!

Автор: Ghirik 5.2.2008, 20:56
Ай да молодцы!!! счас попробую....

А ссылку лучше удалите.....

Автор: Хрипа 5.2.2008, 20:57
Ghirik, обратится getElement тоже не работают, вторые сутки мучаюсь а толку 0.

Автор: Ghirik 5.2.2008, 20:58
php точно нельзя применить?
а то у меня есть готовое решение...

Автор: Хрипа 5.2.2008, 20:59
Ghirik, на PHP вырезаю все в плоть до конкретного TD или DIV а мне надо Ajaxсом вырезать так как если из php то сервак меня банит а цеплять каждый раз прокси это долго!

Автор: Ghirik 5.2.2008, 21:05
Так, всё сначала....  smile 

В переменной, AJAX-ответ.
AJAX-ответ не содержит переводов строк(\n).
Значит, у вас в переменной вся страница, только одной строкой.

Правильно?

Автор: Хрипа 5.2.2008, 21:06
Ghirik, содержит \n\r

Добавлено через 1 минуту и 28 секунд
Ghirik, вы то сами попробуйте. написать скрипт а то ешё больше времени потеряем и посматрите что и как ) если получится извлеч кинте пример буду век благодарен

Автор: Ghirik 5.2.2008, 21:09
Ясно, буду пробовать, но это не быстро, потому, как сам плохло дружу с регуляркой.
Но подобное делал, не могу найти тот файл с регуляркой, весь комп перерыл....
Думаю, через часок разберусь...

Автор: Хрипа 5.2.2008, 21:14
Ghirik, тут проблема что регулярки JS работают фигово
preg_match_all(); / возвращает все совпадения в масив 
а в js regexp.exec(); возврашает только то что попало под шаблон а не совпадения.

Добавлено через 25 секунд
Ghirik, буду очень благодарен если поможите разобратся что и как тут работает!

Автор: Ghirik 6.2.2008, 06:39
Хрипа, я там черкнул на мыло (@mail.ru)... проверьте ящик, который здесь регистрировали...

Автор: ksnk 6.2.2008, 09:47
Хрипа, А вот такой пример вам не поможет?
Код

var s='src="ggg\\"gg" \r\n <tr><td><b><a href="?type=town&name=%C4%EE%ED%E5%F6%EA&fi=2884&la=2264&code=6864&template=AviaTemplate&id=34519&req=findtown&town=Дон"  src="sssss" href=hello ';
var reg=new RegExp("(src|href)="+
            "(?:"+
                "([\"'])((?:\\\\.|[^\\2\\\\])*?)\\2"+
            "|"+
                "([^\S]*)"+
            ")",'g'); // << модификатор g
var m ;
while(m=reg.exec(s) ) alert(m[3]||m[4]||'Oops!');
 Насколько я понял, состряпать регулярку - это не проблема, проблема - вызвать reg.exec достаточное количство раз ;-)

Автор: Ghirik 6.2.2008, 10:34
Я сделал, письмом отправил.... выкладывать не хочу, чтоб народ не баловался.
А кто соображает и сам сделает.
ksnk, если интересно, могу дать ссылку в личке.

Добавлено через 14 минут и 35 секунд
На мой взгляд, нужно что то убирать из этой темы... либо ссылки, либо решение... лучше решение. Если автором задумывалось парсить именно этот сайт, то оставив ссылки можно дождаться появления новых механихмов защиты, какой ни будь периодической смены синтаксиса в параметрах. Да и вообще, не хорошо это... smile плохие мы... smile  

Автор: Хрипа 7.2.2008, 10:01
Ghirik, ksnk, 
Спасибо за помошь )) теперь обсалютно понятно как работать с exec 
аказуется надо вызывать пока оно что-то возвращает и в цикле смотреть данные )) большое спасибо! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)