Люблю на рояле
С нами с 22.08.06
Сообщения: 765
Рейтинг: 282
|
Добавлено: 09/02/09 в 17:01 |
Есть много .html файлов, где есть много ссылок с анкорами. Как можно из каждого .html файла вытащить все эти ссылки без анкоров, только урлы?
|
|
|
|
« ... 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 ^$ |
Потом можно очистить и от порядковых номеров.
|
|
|
|
С нами с 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); |
|
|
|
|
Люблю на рояле
С нами с 22.08.06
Сообщения: 765
Рейтинг: 282
|
Добавлено: 09/02/09 в 17:59 |
Парни, спасибо вам за помощь - но я вообще полный нуб в программинге и в .пхп в частности. Вы закинули мне эти коды, что с ними делать теперь, куда файлы с сылками класть?
Рейтинг проставил по максимуму.
|
|
|
|
С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144
|
Добавлено: 09/02/09 в 18:18 |
shistik писал: | Парни, спасибо вам за помощь - но я вообще полный нуб в программинге и в .пхп в частности. Вы закинули мне эти коды, что с ними делать теперь, куда файлы с сылками класть?
Рейтинг проставил по максимуму.
|
Начни с того, где у тебя лежат этми файлы, под какой OS. И второе - что ты подразумеваешь под словом "вытащить". Вытащить куда, зачем? В каком виде ты хочешь получить вытащеное?
|
|
|
|
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. Задаешь каталог и все файлы обрабатываются махом. Стукни мне, я тебе дам и все объясню.
|
|
|
|
С нами с 09.10.03
Сообщения: 922
Рейтинг: 679
|
Добавлено: 11/02/09 в 12:35 |
Captain Blood: нельзя ли в двух словах описать как это сделать? а то качнул эту софтинку и не кину дупля как оно работает
|
|
|
|
С нами с 29.10.08
Сообщения: 47
Рейтинг: 22
|
Добавлено: 11/02/09 в 14:24 |
У меня русская версия, поэтому если у Вас инглиш смотрите там уже как.
Значит "Фильтры для применения", выбираем там "Extract" - "извлечь адреса URL". На вкладке "Файлов в обработке" задаем путь до папки где лежат файлы и жмем внизу "Делать". В принципе все. Единственное что локальные программа так не вытянет. Тут надо использовать поиск внутри тегов или через "Извлечь соответствия" где синтаксисом Perl описать что надо дергать.
|
|
|
|