Экстрактор ссылок - поскольку я не знаю лучшего названия для него; утилита, которая может взять файл .htm и дать мне ссылки на него, не считая и так, просто прямые ссылки. Полезно для файлов, в которых у вас есть несколько HTML-ссылок, которые находятся в тексте и так далее ...

Кто-нибудь знает о некоторых, случайно?

4 ответа4

2

Мне нужна была быстрая и грязная версия этого раз или два в прошлом. Мое решение, как правило, таково:

  • найдите и замените «http://» на «\r\nhttp://» (переместите все URL-адреса http на свою строку
  • найдите /grep или иным образом отфильтруйте все строки, начинающиеся с «http://» (regex что-то вроде «^ http://»)
  • сортировать отфильтрованные результаты с возможностью удаления повторяющихся строк

Это мое быстрое решение, но я не использовал реальный инструмент для этого раньше. Хотя, я полагаю, я мог бы обернуть это в скрипт .bat или AutoHotkey. Я просто не нуждался в этом достаточно часто для этого.

1
href="(?<url>(((ht|f)tp(s?))\://)?((([a-zA-Z0-9_\-]{2,}\.)+[a-zA-Z]{2,})|((?:(?:25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)(?(\.?\d)\.)){4}))(:[a-zA-Z0-9]+)?(/[a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~]*)?)"

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

1

Скачайте Text Crawler (это бесплатно) и установите его. Запустите его после завершения установки. В поле «Имя файла / фильтр» введите «* .htm * .html * .php» или любые другие расширения файлов HTML, которые вы анализируете. В поле "Местоположение начала" перейдите в каталог, в котором находятся файлы. По умолчанию он также сканирует подкаталоги. Если вы не хотите использовать эту функцию, вы можете нажать "Опции" и отменить выбор "Сканировать подпапки". В поле Найти введите:

<a.*?href\s*=\s*["'](.*?)['"].*?>(.*?)</a>

Убедитесь, что рядом с надписью "Использовать регулярные выражения" установлен флажок. Затем нажмите "Найти". Он покажет вам все ссылки, сгруппированные по файлам, в которых они находятся. Вы также можете нажать "Извлечь", после чего появится окно со всеми ссылками со всех файлов. Так как вы заявили, что хотите ссылки, я понял, вы хотите, чтобы все

<a href="something.php">Something</a>

так что вы можете увидеть, куда указывает ссылка и каково описание. Если вам нужна только ссылка без целого тега, измените RegEx на

href=[\"\'](http:\/\/|\.\/|\/)?\w+(\.\w+)*(\/\w+(\.\w+)?)*(\/|\?\w*=\w*(&\w*=\w*)*)?[\"\']

который вернется

href="something.php"

Дайте мне знать, если это ответит на ваш вопрос. TextCrawler - отличное приложение, и, поскольку оно бесплатное, его стоит попробовать.

0

Firefox, с надстройкой для веб-разработчиков, может сделать это. Откройте файл HTML, откройте панель инструментов веб-разработчика.

В раскрывающемся меню Информация выберите "Просмотр информации о ссылке". Откроется новая вкладка со списком всех ссылок в файле HTML.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .