12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- # -*- coding: utf-8 -*-
- from bs4 import BeautifulSoup
- import subprocess
- import os
- import urllib.parse
- def crear_carpeta(nombre_punto):
- res = subprocess.call(['mkdir', 'ANEXOS_1/'+nombre_punto])
- print("resultado crear carpeta: "+nombre_punto+" = "+str(res))
- def analizar_enlaces(enlaces, punto):
- print(len(enlaces))
- for e in enlaces:
- if e.startswith("https://acreditacion.industrial.umsa.bo") and \
- not e.endswith('/'):
- '''
- enalce local ejemplo:
- https://acreditacion.industrial.umsa.bo/static/media/uploads/Documentacion/Reglamentos/Personal%20Administrativo/Proceso%20de%20seleccion%20de%20becarios.pdf"
- '''
-
- print(e.split('uploads/'))
- l = e.split('uploads/')
- s = l[-1]
- obtener_archivo_local(s, punto)
- else:
- # reporta en un archivo de texto el punto y el enlace que no es local o no es archivo
-
- s = punto + ": " + e + '\n'
- with open("enlaces_no_locales.txt", "a") as myfile:
- myfile.write(s)
-
- def obtener_archivo_local(enlace, punto):
- res = subprocess.call(['cp',
- '/srv/acreditacion/acredt/static/media/uploads/'+enlace,
- 'ANEXOS_1/'+punto])
- print("resultado de cp: " + str(res))
-
-
- html_doc = open("dim1.html", "r")
- soup = BeautifulSoup(html_doc, 'html.parser')
- soup.prettify()
- #print(soup.prettify())
- # el segundo form es la encuesta
- form_encuesta = soup.find_all('form')[1]
- #print(form_encuesta)
- enlaces = []
- #iterando sobre cada punto de la encuesta
- for punto in form_encuesta.find('h4').next_siblings:
- #print(punto)
- sp1 = BeautifulSoup(str(punto),'html.parser')
- # buscando enlaces para descargar
- enlace = sp1.find('a')
- if enlace is not None:
- #print(">>> "+enlace['href'])
- #print(">>> "+ urllib.parse.unquote(enlace['href']) )
- enlaces.append( urllib.parse.unquote(enlace['href']) )
-
- # buscando un titulo de punto en la encuesta
- titulo = sp1.find('h4')
- if titulo is not None:
- if titulo.find('strong') is not None:
- num_punto = titulo.find('strong').string
- if num_punto is not None:
- print()
- print(" ___ "+num_punto + " ___")
- # creando una carpeta
- crear_carpeta(num_punto)
- # ahora se analizan los enlaces conseguidos
- analizar_enlaces(enlaces, num_punto)
- enlaces = []
- print()
-
|