módulo de aprendizaje pitón subida mapa BeautifulSoup

 

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! ' )
 

 

 

Supongo que te gusta

Origin www.cnblogs.com/jackron/p/12593975.html
Recomendado
Clasificación