Парсинг ссылок со страниц

maryan

Client
Регистрация
04.07.2014
Сообщения
230
Благодарностей
40
Баллы
28
Всю ночь ищу такую софтину, было бы не плохо воспользоваться парсером.
maryan можешь обновить ссылку? Я находил шаб с таким функционалом, только там по 1 странице парсит.
к сожалению это делалось 5 лет назад и файл затерялся уже, может у кого-то еще он остался
 

Hartwell

Client
Регистрация
25.09.2014
Сообщения
194
Благодарностей
118
Баллы
43
хоспади за г. тут советуют

Full path url regex:
((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([\-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[\-a-zA-Z0-9._?\^,+\\&%\$#=\\~]+)*/?)


Используем в качетсве alias на unix'ах
Bash:
 # На сессию терминала выполняем код ниже:
alias grepurl='grep -PRhoa "((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([\-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[\-a-zA-Z0-9._?\^,+\\&%\$#=\\~]+)*/?)" . | sort -u '
   # Пользуемся в любомй директории, бегает рекупсивно из текущнго каталога

greourl                                      # Вывод в консоль
grepurl >> save_in_file.txt       # Сохранение в файл (дописывая существующий)




# Чтобы не выполнять каждое открытие терменала "alias grepurl=...."" # Добавляем в .bashrc

nano ~/.bashrc            # в любую пустую строку вв конце добавялем
    alias grepurl='grep -PRhoa "((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([\-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[\-a-zA-Z0-9._?\^,+\\&%\$#=\\~]+)*/?)" . | sort -u '
  # "ctrl + O" - сохраняем, "ctrl+ x" - закрываем редактор nano

source ~/.bashrc      # Инициализируем новое окружение или закрываем-открывваем окно терменала

Оставляем только домены

hostname:
# ------First  example---------------------------------------------------------------
    basename $(dirname "URL")
   
#example №1
>  basename $(dirname "http://www.example.com/index.html")
www.example.com

# ------Second  example---------------------------------------------------------------
    cut -d'/' -f3       

#example №2
>  echo "http://www.example.com/somedir/someotherdir/index.html" | cut -d'/' -f3
www.example.com



Обрабатываем более коректно по tld листу существующих доменных зон

Faup:
// https://github.com/stricaud/faup


// качаем + компилим
git clone git://github.com/stricaud/faup.git
cd faup
mkdir build
cd build
cmake .. && make
sudo make install

// обновляем tld суффиксы
faup -u

// фильтруем файлы/stdin и тд по нужному компоненту url

faup -f hostname listurls.txt
Решение средствами bash задачу выше
Maybe need test/fix:
for a in $(curl -s -k -L https://raw.githubusercontent.com/foresthz/fusion5.1/b5c476c552d6fa9e3c2384e31bc2f9611624c8dd/plugins/wiki/www/config/two-level-tlds); do for b in {a..z};do c=$(echo $a | cut -d. -f1 | tr -d '.' | xargs | tr -d '\n'| wc -c); for d in $(seq 1 $c);do  echo $(echo $a | tr -d '.' | sed "s/./$b/$d" ):$a  ; echo $(echo $a |  sed "s/./$b/$d" ):$a | grep -v $a:$a; done;done;done
Возможно потребуеться небольшая корретировка, привожу просто в первую очередь как пример решения.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)