Olá. Eu estou aprendendo Python, e resolvi fazer um projetinho utilizando o que eu aprendi. A Ideia é simples, procurar em uma página WEB links para arquivos (que estejam dentre as extensões passadas pelo usuário), e então baixe os mesmos. Porém eu não consegui testar minha aplicação por causa de um arro.
Meu código é esse:
#! /usr/bin/python
# coding: utf-8
#By: Thallysson Klein Flor
import io
import sys
import urllib.request as request
from bs4 import BaultifulSoup
import requests
class Main:
def download(response, output):
total_downloaded = 0
while True:
data = response.read(1024)
total_downloaded += len(data)
if not data:
break;
out_file.write(data)
print("Baixados {bytes}".format(bytes=total_downloaded))
def main ():
for url in sys.argv:
page = requests.get(url)
soup = BeaultifulSoup(page.content,"html.parser")
images = soup.find_all('img')
videos = soup.find_all ('video')
audios = soup.find_all ('audio')
links = soup.find_all ('a')
tipo = raw_input ('Que arquivos você deseja baixar?')
print ("Digite o NOME das extensões dos arquivos que você deseja baixar (separadas por uma , )")
tipos = tipo.split(",")
for t in tipo:
for index, img in imagens enumerate(imagens):
src = img [ ' src ' ]
if src.contains ('http') and src.contains(t):
response = request.urlopen (src)
out_file = io.FileIO ("IMG {}".format ( index), mode="w")
download (response, out_file)
response.close ()
out_file.close ()
for index, v in videos enumerate(videos):
src = v [ ' src ' ]
if src.contains ('http') and src.contains(t):
response = request.urlopen (src)
out_file = io.FileIO ("Video {}".format ( index), mode="w")
download (response, out_file)
response.close ()
out_file.close ()
for index, a in audios enumerate(audios):
src = a [ ' src ' ]
if src.contains ('http') and src.contains(t):
response = request.urlopen (src)
out_file = io.FileIO ("Audio {}".format ( index), mode="w")
download (response, out_file)
response.close ()
out_file.close ()
for index, link in links enumerate(links):
src = link [ ' src ' ]
if src.contains ('http') and src.contains(t):
response = request.urlopen (src)
out_file = io.FileIO ("Arquivo {}".format ( index), mode="w")
download (response, out_file)
response.close ()
out_file.close ()
if __name__ == "__main__":
main()
Está dando erro de “invalid sintax” em todas as funções enumerate de todos os loops. Alguém sabe me dizer o que eu fiz de errado?