Publicar rastreo de barra y guardar en local

Código orientado a procesos

importar solicitudes 

# Paso 
# Determinar la dirección de url, generar una lista de url 
# Recorrer la lista de url, solicitar datos 
# Guardar los datos devueltos en el local 

# https://tieba.baidu.com/f?kw=Wuhan&pn=0 50 * 0 
# https://tieba.baidu.com/f?kw=Wuhan&pn=50 50 * 1 
# https://tieba.baidu.com/f?kw=Wuhan&pn=100 50 * 2 
# https: // tieba .baidu.com / f? kw = Wuhan, el PN = 150 50 * y 3 
# https://tieba.baidu.com/f?kw= Wuhan, el PN = 200 50 * 4 y 
# personalizada nombre de la barra mensaje 
Name = la entrada ( ' por favor pegarlo introduzca el nombre: ' )
 # url plantilla 
url = ' https://tieba.baidu.com/f?kw= PN = {} {} y ' 
# generada lista de URL
= Url_list [url.format (nombre, 50 * I) para que en el rango (5. )]
 Imprimir (url_list)
 # definen la información de la cabecera copia navegador solicitud a través de 
cabeceras = {
     " el Agente User-- " : " Mozilla / 5.0 (Macintosh; Intel Mac OS X-las 10_13_6) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 80.0.3987.163 Safari / 537.36 " }
 # iterate url_list, get url 
de artículo en url_list:
     # solicitud de URL, para obtener datos 
    de respuesta = requests.get (artículo, encabezados = cabeceras)
     # nombre del archivo 
    nombre_archivo = ' lo publicó _' + nombre + " 第 {} 页" .format (url_list.index (item) +1) + " .html " 
    # 保存 到 文件 
    con abierto (nombre_archivo, ' w ' , codificación = ' utf-8 ' ) como f : 
        f.write (response.content.decode ())

 

Encapsular código orientado a objetos

# 1. Determine la url para generar url_list 
# 2. Recorre la lista, solicite datos 
# 3. Devuelva los datos y guárdelos en la 
clase de solicitudes de importación local Tieba_spider (objeto):
     def __init__ (self, name):
         # 贴 吧 的 名字 
        self.name = name
         # inicialización pegarlo URL 
        self.url = ' https://tieba.baidu.com/f?kw= ' + nombre + ' y PN = {} ' # definen la información de la cabecera copia navegador solicitud a través de 
        self.headers = {
             " Usuario-Agente " : "


 
        Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 80.0.3987.163 Safari / 537.36 " } 

    def get_url_list (self):
         " "" Generar lista de url "" " 
        url_list = [self .url.format (50 * I) para que en el rango (5. )]
         volver url_list 

    DEF get_data_fromurl (Ser, url):
         "" " Obtener datos desde el servidor, y devuelve el decodificado " "" 
        # solicitud de URL, es la obtención de datos que url 
        Response = request.get (url, headers = self.headers)
         devuelve response.content 

    del recorrido url_list .decode () defsave_html (Ser, html_str, NUM):
         # Nombre del archivo 
        nombre_archivo = ' barra posterior _ ' + el self.name + " en la p {} " .formato (NUM) + " .html " 
        # guarda en un archivo 
        con Open (nombre_archivo, ' W ' , encoding = ' utf-8 ' ) como f: 
            f.write (html_str) 

    def run (self):
         pass 
        # 1. Determine la URL para generar url_list 
        url_list = self.get_url_list ()
         # 2. Atraviese la lista, solicite datos 
        para item_url enUrl_list: 
            html_str = self.get_data_fromurl (item_url)
             # 3. datos de retorno, guardados localmente 
            self.save_html (html_str, url_list.index (item_url) + 1. ) 


SI  el __name__ == ' __main__ ' :
     # entrada de 
    nombre = input ( ' por favor introduzca el nombre que se le atribuye: ' )
     # initialize 
    araña = Tieba_spider (nombre)
     # llamar al método run 
    spider.run ()

 

Supongo que te gusta

Origin www.cnblogs.com/wutongluo/p/12735498.html
Recomendado
Clasificación