Eu criaria um arquivo separado (texto) com todos os URLs listados em linhas simples:
www.url1
www.url2
Em seguida, altere a linha no script para anexar os links encontrados em pdf ao pdflinks.txt
( tee -a pdflinks.txt | more
em vez de tee pdflinks.txt
):
lynx -cache=0 -dump -listonly "$WEBSITE" | grep ".*\.pdf$" | awk '{print }' | tee -a pdflinks.txt | more
Em seguida, torne o script executável e execute-o por outro script (python neste caso):
#!/usr/bin/python3
import subprocess
url_list = "/path/to/url_list.txt"
script = "/path/to/script.sh"
with open(url_list) as sourcefile:
sourcefile = sourcefile.readlines()
for item in sourcefile:
subprocess.call([script, item.replace("\n", "")])
Cole o texto acima em um documento vazio, adicione os caminhos apropriados e salve-o como run_pdflinkextractor.py e execute-o pelo comando
python3 /path/to/run_pdflinkextractor.py
Mais opções
Você realmente não pediu, mas caso queira baixar os links pdf encontrados, é uma pena parar no meio do caminho. O script abaixo pode ser útil para fazer isso. O procedimento é o mesmo: cole o texto abaixo em um arquivo vazio, salve-o como download_pdffiles.py
, adicione o caminho para o pdflinks.txt
que foi criado no primeiro passo, o caminho para a pasta que você gostaria de baixar os arquivos para e execute-o pelo comando:
python3 /path/to/download_pdffiles.py
O script para baixar os arquivos:
#!/usr/bin/python3
import subprocess
pdf_list = "/path/to/pdflinks.txt"
download_directory = "/path/to/downloadfolder"
with open(pdf_list) as sourcefile:
sourcefile = sourcefile.readlines()
for item in sourcefile:
subprocess.call(["wget", "-P", download_directory, item.replace("\n", "")])
É claro que você pode adicionar mais opções ao script, o que fazer no caso de erros, por exemplo (os erros são ignorados no script como estão). Veja man wget
para mais opções.