Есть ли в Linux какая-нибудь утилита для массовой проверки кодов списка URL?

12
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
686

Всем привет!

Есть ли в Linux утилита чтобы проверить список из тысяч URL на ответ 200, 404 и т.д. Чтобы можно было из файла со списком большого количества ссылок проверить их какой код ответа у них?

Заранее всем спасибо за ответы!


VK
На сайте с 26.04.2006
Offline
170
#1
Что то типа linkchecker
Их на гитхабе полно
Artisan
На сайте с 04.03.2005
Offline
375
#2
Dmitriy_2014 :
Есть ли в Linux утилита чтобы проверить список из тысяч URL на ответ 200, 404 и т.д. Чтобы можно было из файла со списком большого количества ссылок проверить их какой код ответа у них?

$ man man

$ man wget

$ man grep

$ man sh

www.leak.info / ДАРОМ линки конкурентов и забытых доменов
br.almighty
На сайте с 13.07.2021
Offline
102
#3
Напряги chatgpt, он тебе напишет любой скрипт, в том числе и для linux для любой оболочки.
E
На сайте с 01.10.2017
Offline
117
#4

Вы же вроде бы пробовали программировать. Можно самому написать, т.к. все просто.

...для PHP CLI.

Что касается утилит, выше упоминали "обычный" wget, который умеет читать список адресов из файла.

Домены на продажу: https://p20.ru/collection/domains-for-sale
W
На сайте с 15.02.2023
Offline
19
#5
#!/usr/bin/perl
use warnings;
use strict;
use File::Slurp;
use WWW::Mechanize;
use Try::Tiny;
use WWW::Mechanize::DecodedContent;
use JSON qw(decode_json);
use utf8;
use Data::Dumper qw(Dumper);
#use Net::SSL;
$|=1;

my $m = WWW::Mechanize->new(agent => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0',cookie_jar => {}, autocheck => 0, stack_depth => 0, ssl_opts => { verify_hostname => 0 });$m->add_header('Accept' => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");$m->add_header('Accept-Language' => "en-US,en;q=0.5");$m->add_header('Accept-Encoding' => 'gzip, deflate');

my @url = read_file("site.txt");

for (@url){
chomp;
$m->get($_);
print $m->status(); exit;
print $m->decoded_content(); exit;
}
#       write_file( "matched.txt", {append => 1},@a ) ;
# write_file( "d.html", {binmode => ':utf8'}, $m->decoded_content());
# write_file( "d.html", {binmode => ':utf8'}, @dump);

Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#6
Artisan #:

$ man man

$ man wget

$ man grep

$ man sh

Вы бы так и сказали:

Что надо:

wget -o log --spider -i links.txt

-i чтобы из файла ссылки взять, но они должны быть списком с каждой новой строки.

--spider чтобы он файлы не скачивал и не сохранял их в виде html страниц.

-o чтобы в файл все сообщения по обойденным ссылкам сохранил в виде лога.

Потом можно посмотреть сколько 404 или 200:

grep 404 log | wc –l

Потом можно посмотреть какие конкретно ссылки с 404:

grep -B 2 404 log

-B чтобы две строки до строки со статусом 404 показались в которой ссылка.

А linkchecker прикольная утилита, но что-то у меня не получилось ей скормить список ссылок из файла.

Наверное, для этих целей лучше curl использовать.

Но, я думал, что есть что-то простое типа: проверьссылки имяфайла
E
На сайте с 01.10.2017
Offline
117
#7
Dmitriy_2014 #:
проверьссылки имяфайла
Что значит "проверь ссылки"? Этой неопределенностью сквозило еще из первого сообщения 😊
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#8
estic #:
Что значит "проверь ссылки"? Этой неопределенностью сквозило еще из первого сообщения 😊
Да, какая уже разница, от этой неопределенности сквозит еще из первого сообщения!
E
На сайте с 10.02.2024
Offline
14
#9
Dmitriy_2014 #:
Да, какая уже разница, от этой неопределенности сквозит еще из первого сообщения!

В linux полно утилит по умолчанию, их просто комбнировать надо)

Вывести в консоль

cat urls.txt | xargs -I {} -P 10 sh -c 'echo "{}: $(curl -s -o /dev/null -w "%{http_code}" "{}")"'

или в файл

cat urls.txt | xargs -I {} -P 10 sh -c 'echo "{}: $(curl -s -o /dev/null -w "%{http_code}" "{}")" >> urls-status.txt'
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#10
Eddgar #:

В linux полно утилит по умолчанию, их просто комбнировать надо)

Вывести в консоль

или в файл

Это я уже тоже понял, я просто что-то вспомнил про - пусть каждая программа делает что-то одно, но хорошо, и совсем забыл, это же Linux - стопятсот команд с миллионом параметров в связке через каналы, короче я уже просканировал все через wget, все ОК, но все равно спасибо. И curl как я понял просто так из файла список URL не возьмет сама по себе.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий