BeautifulSoup módulo de escalada de aprendizaje gráfica de texto HTML etiqueta análisis posicionamiento
tutoriales en línea son en su mayoría subiendo mzitu, anti-subir este sitio restricciones y más. Gratuito para encontrar una velocidad de análisis de URL un poco lento.
proceso de la escritura: En primer lugar obtener el número total de páginas -> URL de la página de mosaico -> URL obtener todos los temas en cada página -> atravesar la URL de origen imagen para descargar, guardar
1 # python3 2 # codificación: utf-8_ 3 # _author: Jack 4 # _DATE: 03/28/2020 5 6 de BS4 importación BeautifulSoup 7 de importación solicitudes, Os, sys, tiempo 8 9 dir_path = os.path.dirname (os .path.abspath ( __file__ )) 10 sys.path.append (dir_path) 11 12 13 HEADER = { 14 ' User-Agent ' : 'Mozilla / 5.0 (Macintosh; Intel Mac OS X 10,15; rv: 74.0) Gecko / 20100101 Firefox / 74.0 ' 15 } 16 17 def create_dir (FILE_PATH): 18 ''' 19 : FILE_PATH param: images_directory 20 : retorno: 21 ' '' 22 si no os.path.exists (ruta_archivo): 23 os.makedirs (FILE_PATH) 24 de impresión ( ' directorio Creatr: ' , FILE_PATH) 25 os.chdir (ruta_archivo) # cd .. 26 27 def save_data (src, nombre_dir, nombre_de_fichero): 28 '' ' 29 : param src: url imágenes 30 : suma param: nombre del directorio 31 : param nombre_archivo: nombre de la imagen 32 : Vuelta: 33 ''' 34 ruta_archivo = os.path.join (dir_path, ' imágenes ' , str (nombre_dir)) # directorio de ruta 35 image_path = os.path.join (ruta_archivo, nombre_de_fichero) # imágenes ruta 36 create_dir (ruta_archivo) 37 38 si no os.path.isfile (image_path): 39 req = requests.get (src, cabeceras = CABECERA) 40 con (image_path, abierta ' wb ' ) como f_save: 41 f_save.write (req.content) 42 de impresión ( ' descarga correcta: ' , nombre_de_fichero) 43 f_save.flush ( ) 44 otra cosa : 45 de impresión ( ' El archivo ya existe Pass! ' ) 46 47 def request_to_url (url, cabecera): 48 ''' 49 : param url: PAGE_URL 50 : cabeza param: request.header 51 : retorno: respond.text 52 '' ' 53 res = requests.get (url, cabeceras = encabezado) 54 de retorno res.text 55 56 def sopa (url, cabecera): 57 ''' 58 : param url: 59 cabecera param:: 60 : retorno: HTML_TAG 61 '' ' 62 de retorno BeautifulSoup (request_to_url (url, cabecera), ' html.parser ' ) 63 64 def acción (url): 65 ''' 66 Descargar un recuento de 100 imágenes y crear una nueva carpeta 67 : param url: URL 68 : Vuelta: 69 '' ' 70 DOWNLOAD_COUNT = 0 71 nombre_dir = 100 72 try : 73 page_tag = sopa (url, ENCABEZADO) .find ( ' div 'class_ = ' pg ' ) .find_all ( ' un ' ) 74 MAX_PAGE = int (page_tag [-2] .text.split ( ' ' ) [- 1 ]) 75 76 para i enrango (1, MAX_PAGE + 1): # hallazgo página 77 PAGE_URL = os.path.join (url, ' forum.php fin = & fid = 0 & page =% d? ' % i) 78 # time.sleep (1) 79 page_all_theme_list = sopa (PAGE_URL, HEADER) .find ( ' div ' , class_ = ' kind_show ' ) 80 theme_list = page_all_theme_list.find_all ( ' div ' , class_ = ' photo_thumb kind_left ' ) 81 82 para i en theme_list: # Hallazgo tema 83 tema = i.find ( ' div ' , class_ = ' título ' ) .find ( ' un ' ) 84 # title = theme.string 85 img_url = theme.get ( ' href ' ) 86 de impresión ( " Ready descarga:% s " % theme.string, img_url) 87 # time.sleep (1) 88 img_page_tag = sopa (img_url, ENCABEZADO) .find ( ' td ' , class_ = 'T_f ' ) .find_all ( ' img ' ) 89 90 para i en img_page_tag: # imagen hallazgo 91 try : 92 img_src = i.get ( ' src ' ) 93 si isinstance (% 100 DOWNLOAD_COUNT , float): 94 dir_name + = 100 95 save_data (img_src, dir_name, img_src.split ( ' / ' ) [- 1 ]) 96 DOWNLOAD_COUNT + = 1 97 de impresión ( ' Descargar exitosa:% d ' % DOWNLOAD_COUNT) 98 99 excepto Excepción como e: 100 de impresión ( ' Img_tag y Save_data Error: ' , e) 101 continúan 102 103 excepto Excepción como e: 104 de impresión ( ' El Error tronco: 'e) 105 106 si __name__ == ' __main__ ' : 107 impresión ( ' Run ..... ' ) 108 URL = ' http://www.lesb.cc/ ' 109 acciones (URL) 110 de impresión ( ' Realizar! ' )