Um script bash para aranha um site, siga os links e busca URLs (com filtragem embutida) em um arquivo de texto gerado.
Faça o download do script e salve no local desejado em sua máquina.
Você precisará wget instalado em sua máquina.
Para verificar se já está instalado, tente executar o comando wget por si só.
Se você está em um Mac ou em execução Linux, é provável que você já tenha instalado o WGET; No entanto, se o comando wget não estiver funcionando, ele poderá não ser adicionado corretamente à sua variável de caminho.
Se você estiver executando o Windows:
Faça o download do último binário wget para Windows em https://eternallybored.org/misc/wget/
O download está disponível como um zip com documentação ou apenas um exe. Eu recomendo apenas o exe.
Se você baixou o ZIP, extraia tudo (se o Windows incorporado em Zip Utility der um erro, use 7-ZIP). Além disso, se você baixou a versão de 64 bits, renomeie o arquivo wget64.exe para wget.exe
Mova wget.exe para C:WindowsSystem32
Verifique se a versão do grep no seu computador suporta -E, --extended-regexp . Para verificar o suporte, execute grep --help e procure o sinalizador. Para verificar a versão instalada, execute grep -V .
Open Git Bash, Terminal, etc. e defina permissões de execução para o script fetchurls.sh :
chmod +x /path/to/script/fetchurls.shDigite o seguinte para executar o script:
./fetchurls.sh [OPTIONS]...Como alternativa, você pode executar com um dos seguintes seguintes:
sh ./fetchurls.sh [OPTIONS]...
# -- OR -- #
bash ./fetchurls.sh [OPTIONS]...Se você não passar nenhuma opção, o script será executado no modo interativo.
Se o URL do domínio exigir autenticação, você deverá passar o nome de usuário e a senha como sinalizadores; Você não é solicitado a esses valores no modo interativo.
Você pode passar opções (como sinalizadores) diretamente para o script ou não passar nada para executar o script no modo interativo.
-d , --domainhttps://example.comO URL de domínio totalmente qualificado (com protocolo) que você gostaria de rastejar.
Certifique -se de inserir o protocolo correto (por exemplo, https ) e subdomínio para o URL ou o arquivo gerado pode estar vazio ou incompleto. O script tentará automaticamente seguir o primeiro redirecionamento HTTP, se encontrado. Por exemplo, se você inserir o protocolo incorreto ( http://... ) para https://www.adamdehaven.com , o script seguirá automaticamente o redirecionamento e buscará todos os URLs para o protocolo HTTPS correto.
Os URLs do domínio serão apagados com sucesso, desde que o URL alvo (ou o primeiro redirecionamento) retorne um status de HTTP 200 OK .
-l , --location~/Desktop/c/Users/username/DesktopO local (diretório), onde você gostaria de salvar os resultados gerados.
Se o diretório não existir no local especificado, desde que o restante do caminho seja válido, o novo diretório será criado automaticamente.
-f , --filenamedomain-topleveldomainexample-comO nome desejado do arquivo gerado, sem espaços ou extensão de arquivo.
-e , --exclude"css|js|map"Lista delimitada por tubos de extensões de arquivo para excluir dos resultados.
Para evitar a exclusão de arquivos que correspondam à lista padrão de extensões de arquivo, basta passar uma string vazia ""
-s , --sleep02O número de segundos para esperar entre as recuperações.
-u , --usernamemarty_mcflySe o URL do domínio exigir autenticação, o nome de usuário passa para o comando wget.
Se o nome de usuário contiver caracteres espaciais, você deverá passar por dentro. Este valor pode ser definido apenas com um sinalizador; Não há prompt no modo interativo.
-p , --passwordthats_heavySe o URL do domínio exigir autenticação, a senha passa para o comando wget.
Se a senha contiver caracteres espaciais, você deverá passar por dentro. Este valor pode ser definido apenas com um sinalizador; Não há prompt no modo interativo.
-n , --non-interactivePermite que o script seja executado com sucesso em um shell não interativo.
O script utilizará as configurações padrão --location e --filename a menos que os respectivos sinalizadores estejam explicitamente definidos.
-i , --ignore-robotsIgnore robots.txt para o domínio.
-w , --wgetMostre as instruções de instalação do WGA. As instruções de instalação podem variar dependendo da configuração do seu computador.
-v , -V , --versionMostrar informações da versão.
-t , --troubleshootingSaídas receberam sinalizadores de opções com seus valores associados em tempo de execução para solução de problemas.
-h , -? , --helpMostre o conteúdo da ajuda.
Se você não passar o sinalizador -domínio, o script será executado no modo interativo e você será solicitado pelas opções não definidas.
Primeiro, você será solicitado a inserir o URL completo (incluindo o protocolo HTTPS/HTTP) do site que você gostaria de rastejar:
Fetch a list of unique URLs for a domain.
Enter the full domain URL ( http://example.com )
Domain URL:Você será solicitado a entrar no local (diretório) de onde deseja que os resultados gerados fossem salvos (padrões na área de trabalho no Windows):
Save file to directory
Directory: /c/Users/username/DesktopEm seguida, você será solicitado a alterar/aceitar o nome do arquivo gerado (basta pressionar Enter para aceitar o nome do arquivo padrão):
Save file as
Filename (no file extension, and no spaces): example-comPor fim, você será solicitado a alterar/aceitar a lista padrão de extensões de arquivo excluídas (pressione Enter para aceitar a lista padrão):
Exclude files with matching extensions
Excluded extensions: bmp | css | doc | docx | gif | jpeg | jpg | JPG | js | map | pdf | PDF | png | ppt | pptx | svg | ts | txt | xls | xlsx | xmlO script rastejará o site e compilará uma lista de URLs válidos em um novo arquivo de texto. Quando concluído, o script mostrará uma mensagem e a localização do arquivo gerado:
Fetching URLs for example.com
Finished with 1 result !
File Location:
/c/Users/username/Desktop/example-com.txtSe já existir um arquivo com o mesmo nome no local (por exemplo, se você anteriormente executou o script para o mesmo URL), o arquivo original será substituído .
O script, por padrão, filtra muitas extensões de arquivo que geralmente não são necessárias.
A lista de extensões de arquivo pode ser passada pelo sinalizador --exclude , ou fornecido pelo modo interativo.
.bmp.css.doc.docx.gif.jpeg.jpg.JPG.js.map.pdf.PDF.png.ppt.pptx.svg.ts.txt.xls.xlsx.xmlAlém disso, arquivos e diretórios do site específicos (incluindo WordPress) também são ignorados.
/wp-content/uploads//feed//category//tag//page//widgets.php//wp-json/xmlrpc O script deve filtrar a maioria dos tipos e diretórios indesejados de arquivos; No entanto, você pode editar as expressões regulares que filtram certas páginas, diretórios e tipos de arquivos editando a função fetchUrlsForDomain() dentro do arquivo fetchurls.sh .
Aviso : se você não estiver familiarizado com as expressões Grep ou regular, poderá interromper facilmente o script.