Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 01.10.2009, 09:12   #1
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 243
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
Question php+регулярки=вытащить ссылки со страницы

Есть у кого нибудь готовая регулярка? Поделитесь плиз
__________________
Как дела?
Русская мафия вне форума   Ответить с цитированием
Старый 01.10.2009, 09:20   #2
JS Developer
 
Аватар для Regent
 
Регистрация: 10.04.2008
Адрес: Виргинские острова
Сообщений: 1,093
Вес репутации: 247
Regent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущее
Отправить сообщение для Regent с помощью ICQ
По умолчанию

А для каких целей?
Regent вне форума   Ответить с цитированием
Старый 01.10.2009, 10:58   #3
Новичок
 
Регистрация: 26.05.2009
Сообщений: 21
Вес репутации: 0
Telemad скоро станет известенTelemad скоро станет известен
По умолчанию

когда-то использовал

Цитата:
preg_match_all("/\s*href\s*=\s*[\"\']{0,1}([^\s\"\']+)[\"\'\s]+/ims",file_get_contents('http://rambler.ru'),$aResult);
echo '<pre>';
print_r($aResult[1]);
echo '</pre>';
exit;
еще такое было

Цитата:
preg_match_all("/<a\s*?href=[\'|\"]{0,1}(.*?)[\'|\"]{0,1}(?= |>)/si", $sHTMLtext, $aResult);
может что-то среднее поможет наиболее точно сылки выдернуть
Telemad вне форума   Ответить с цитированием
Старый 01.10.2009, 11:25   #4
Специалист
 
Аватар для kibergex
 
Регистрация: 08.06.2009
Адрес: Саудовская Аравия
Сообщений: 168
Вес репутации: 0
kibergex не любят в этих краяхkibergex не любят в этих краяхkibergex не любят в этих краях
По умолчанию

php dom есть. Указуешь путь, и вытягиваешь элементы.
kibergex вне форума   Ответить с цитированием
Старый 01.10.2009, 11:48   #5
Пожиратель черепашкоВ
 
Аватар для chahlic
 
Регистрация: 24.12.2008
Адрес: Телемелетрямдия
Сообщений: 4,739
Вес репутации: 396
chahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Русская мафия Посмотреть сообщение
Есть у кого нибудь готовая регулярка? Поделитесь плиз
вот накидал примерчик (выдираем все ссылки с http://site.ru):

PHP код:
<?php
$content 
file_get_contents("http://site.ru");
$pattern '%<a[^>]*>.*?</a>%im';
preg_match_all($pattern$content$out);
foreach(
$out[0] as $key => $value) {
    print 
$value.'<br>';
}
?>
ПысЫ: регулярка не моя, но вроде работает
__________________
Смотри цены в САПе в своей валюте: плагин "Конвертер Валют" для ФФ.
chahlic вне форума   Ответить с цитированием
Старый 01.10.2009, 14:45   #6
JS Developer
 
Аватар для Regent
 
Регистрация: 10.04.2008
Адрес: Виргинские острова
Сообщений: 1,093
Вес репутации: 247
Regent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущее
Отправить сообщение для Regent с помощью ICQ
По умолчанию

Цитата:
Сообщение от chahlic Посмотреть сообщение
вот накидал примерчик (выдираем все ссылки с http://site.ru):

PHP код:
<?php
$content 
file_get_contents("http://site.ru");
$pattern '%<a[^>]*>.*?</a>%im';
preg_match_all($pattern$content$out);
foreach(
$out[0] as $key => $value) {
    print 
$value.'<br>';
}
?>
ПысЫ: регулярка не моя, но вроде работает
Только она например об такое спотыкнётся
Код HTML:
<a href="/" title"<a href=\"#\"></a>">Ссылка</a>
Regent вне форума   Ответить с цитированием
Старый 01.10.2009, 14:49   #7
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 243
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
По умолчанию

Regent, для создания карт сайтов


chahlic, нужно чтоб все случаи тянуло


Telemad, попробую понять, спс
__________________
Как дела?
Русская мафия вне форума   Ответить с цитированием
Старый 01.10.2009, 16:02   #8
JS Developer
 
Аватар для Regent
 
Регистрация: 10.04.2008
Адрес: Виргинские острова
Сообщений: 1,093
Вес репутации: 247
Regent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущее
Отправить сообщение для Regent с помощью ICQ
По умолчанию

Русская мафия, это какой - то онлайн - сервис?
Либо для создания внутренней карты сайта?
Почти идеальным будет сначало вырезать все экранированные символы \\.
Далее вырезать все коментарии <!---->
Далее вырезать все строки '[^']*' и "[^"]*"
Далее вырезать все тэги <script> - <script[^>]*>.*</script>
Ну и дальше уже можно смотреть ссылки. Как - то так.
Regent вне форума   Ответить с цитированием
Старый 01.10.2009, 16:16   #9
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 243
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Regent Посмотреть сообщение
Русская мафия, это какой - то онлайн - сервис?
да, именно. Нужно вытащить внутренние и внешние ссылки
__________________
Как дела?
Русская мафия вне форума   Ответить с цитированием
Старый 01.10.2009, 17:58   #10
JS Developer
 
Аватар для Regent
 
Регистрация: 10.04.2008
Адрес: Виргинские острова
Сообщений: 1,093
Вес репутации: 247
Regent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущееRegent - прекрасное будущее
Отправить сообщение для Regent с помощью ICQ
По умолчанию

Цитата:
Сообщение от Русская мафия Посмотреть сообщение
да, именно. Нужно вытащить внутренние и внешние ссылки
Хы, ну надо было так и сразу говорить
Берёте, делаете AJAX запрос через самопальный php прокси.
Дальше анализируете DOM дерево например с помощью jQuery ну и самое простое, это перебираете все ссылки.
Примерно так:
Код HTML:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
// После полной загрузки страницы
$(
  function(){
    $( 'form#chekLinks' )
    .submit(
      function(){

$.ajax({
  url: 'адресНашегоСкрипта.php',
  type: 'POST',
  data:{
    url:$( this ).find( 'input:text' ).val()
  },
  success: function( DOM ){
    var result = $( DOM ).find( 'a' ).map( function(){
      // Здесь возвращает поочерёдно адреса ссылок
      return this.href;
    } )
    // Склеиваем полученый массив
    .join( '<br />' );
    // Вставляем результат
    $( '#chekLinksResults' ).html( 'Адреса на страницы:<br />' + result );
  }
};
        return false;
      }
    );
  }
);
</script>
<form id="chekLinks" action="">
<input type="text" value="Адрес сайта" />
</form>
<div id="chekLinksResults"></div>
А вот самопальный прокси:
PHP код:
$handle fopen$_POST'url' ], 'r' );
if( 
$handle ){
    while( !
feof$handle ) ){
        
$buffer fgets$handle4096 );
        echo 
$buffer;
    }
fclose($handle);

И всё без перезагрузки страницы
Писал быстро, извеняюсь за ошибки.
Regent вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вытащить с сайта внешние ссылки. AdmninsCluba Яндекс 21 28.10.2009 14:48
вытащить из индекса страницы nvrskozzy Яндекс 10 20.08.2009 05:34
Нужно вытащить все страницы сайта grabus Софт для оптимизаторов и вебмастеров 8 14.02.2009 11:47
Возможно ли вытащить сайт из бана? SerGG Яндекс 29 28.11.2008 00:35
Ссылки на страницы и ТиЦ MS555 Яндекс 1 07.09.2008 19:30


Часовой пояс GMT +3, время: 06:33.