Реклама на сайте Advertise with us

Как выдрать ссылки из html документа?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Люблю на рояле

С нами с 22.08.06
Сообщения: 765
Рейтинг: 282

Ссылка на сообщениеДобавлено: 09/02/09 в 17:01       Ответить с цитатойцитата 

Есть много .html файлов, где есть много ссылок с анкорами. Как можно из каждого .html файла вытащить все эти ссылки без анкоров, только урлы?
icon_wink.gif

Гламурные тиночки|Shistik Top Traffic - Cartoons, Hentai, Anime, Comix

0
 

« ... full on ... »

С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686

Ссылка на сообщениеДобавлено: 09/02/09 в 17:25       Ответить с цитатойцитата 

На PHP:

Код:
$data = file_get_contents('page.html'); // получить содержимое страниц(ы)

preg_match_all("/a[\s]+[^>]*?href[\s]?=[\s\"\']+([http].*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a>/is", $data, $matches);

print_r($matches[1]); // $matches[1] содержит найденные URL'ы


Правда, этот код вытащит только все внешние ссылки и внутренние ссылки, начинающиеся на http://, локальные вроде <a href="/pages/23.html"> в список не попадут.

Power of the lime madness...

4
 



С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144

Ссылка на сообщениеДобавлено: 09/02/09 в 17:41       Ответить с цитатойцитата 

Код:
lynx -dump http://site/file | grep -A 1000 References | grep -v References | grep -v ^$


Потом можно очистить и от порядковых номеров.

Моя подпись.

4
 



С нами с 14.10.02
Сообщения: 462
Рейтинг: 727

Ссылка на сообщениеДобавлено: 09/02/09 в 17:43       Ответить с цитатойцитата 

Парсер всех внешних и внутренних ссылок со страницы

В массиве $vnut только ссылки внутренние, в массиве $vnech только внешние ссылки.

Код:
$html=file_get_contents ('http://www.popsu.net');
$url='popsu.net';
$vnut=array();
$vnech=array();
preg_match_all('~<a [^<>]*href=[\'"]([^\'"]+)[\'"][^<>]*>(((?!~si',$html, $matches);
foreach ($matches[1] as $val) {
if (!preg_match("~^[^=]+://~", $val) || preg_match("~^[^://]+://(www\.)?".$url."~i", $val)) { $vnut[]=$val; }
else $vnech[]=$val;
}
$vnut=array_unique ($vnut);
$vnech=array_unique ($vnech);
print_r ($vnut);
print_r ($vnech);

4
 

Люблю на рояле

С нами с 22.08.06
Сообщения: 765
Рейтинг: 282

Ссылка на сообщениеДобавлено: 09/02/09 в 17:59       Ответить с цитатойцитата 

Парни, спасибо вам за помощь - но я вообще полный нуб в программинге и в .пхп в частности. icon_smile.gif Вы закинули мне эти коды, что с ними делать теперь, куда файлы с сылками класть?
Рейтинг проставил по максимуму. icon_smile.gif

Гламурные тиночки|Shistik Top Traffic - Cartoons, Hentai, Anime, Comix

0
 



С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144

Ссылка на сообщениеДобавлено: 09/02/09 в 18:18       Ответить с цитатойцитата 

shistik писал:
Парни, спасибо вам за помощь - но я вообще полный нуб в программинге и в .пхп в частности. icon_smile.gif Вы закинули мне эти коды, что с ними делать теперь, куда файлы с сылками класть?
Рейтинг проставил по максимуму. icon_smile.gif


Начни с того, где у тебя лежат этми файлы, под какой OS. И второе - что ты подразумеваешь под словом "вытащить". Вытащить куда, зачем? В каком виде ты хочешь получить вытащеное?

Моя подпись.

0
 

php наше всё :)

С нами с 26.07.04
Сообщения: 814
Рейтинг: 447

Ссылка на сообщениеДобавлено: 09/02/09 в 20:06       Ответить с цитатойцитата 

lega_cobra писал:
Код:
lynx -dump http://site/file | grep -A 1000 References | grep -v References | grep -v ^$


Потом можно очистить и от порядковых номеров.

Вот и с очисткой и с еще хорошими штуками :):
Код:
lynx -dump file | grep -A 1000 References | grep -v -E "References|Hidden|Visible" | grep -v ^$ | sed 's/ [0-9]*\. //g'

Очень изящно, кстати :))

ТС: как юзать:
Заходишь на сервак по PuTTY, переходишь в папку с html-ками.
Выполняешь:
Код:
lynx -dump file | grep -A 1000 References | grep -v -E "References|Hidden|Visible" | grep -v ^$ | sed 's/ [0-9]*\. //g'

Где вместо file подставляешь имя html-файла и получаешь на выходе список урлов с этого файла. (Список из 1000 урлов.. Если их больше 1000, то замени в строке 1000 на что-то тебе подходящее :))

Толковый программист ждет [не]больших заказов (:

4
 



С нами с 29.10.08
Сообщения: 47
Рейтинг: 22

Ссылка на сообщениеДобавлено: 11/02/09 в 11:21       Ответить с цитатойцитата 

TextPipePro - Извлечь адреса URL. Задаешь каталог и все файлы обрабатываются махом. Стукни мне, я тебе дам и все объясню.

0
 



С нами с 09.10.03
Сообщения: 922
Рейтинг: 679

Ссылка на сообщениеДобавлено: 11/02/09 в 12:35       Ответить с цитатойцитата 

Captain Blood: нельзя ли в двух словах описать как это сделать? а то качнул эту софтинку и не кину дупля как оно работает icon_smile.gif

porn

0
 



С нами с 29.10.08
Сообщения: 47
Рейтинг: 22

Ссылка на сообщениеДобавлено: 11/02/09 в 14:24       Ответить с цитатойцитата 

У меня русская версия, поэтому если у Вас инглиш смотрите там уже как.
Значит "Фильтры для применения", выбираем там "Extract" - "извлечь адреса URL". На вкладке "Файлов в обработке" задаем путь до папки где лежат файлы и жмем внизу "Делать". В принципе все. Единственное что локальные программа так не вытянет. Тут надо использовать поиск внутри тегов или через "Извлечь соответствия" где синтаксисом Perl описать что надо дергать.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »