Recientemente escribió un guión get título página web por lotes, el guión es lenta no es práctico, una gran cantidad de errores, precaución! El foso principal es un resumen pisado cuando la práctica módulo.
Fuente de la siguiente manera:
las solicitudes de importación importar argparse import re bcolors clase: CABECERA = '\ 033 [95m' OKBLUE = '\ 033 [94m' OKGREEN = '\ 033 [92m' ADVERTENCIA = '\ 033 [93m' FALLO = '\ 033 [91m' ENDC = '\ 033 [0m' = BOLD '\ 033 [1m' UNDERLINE = '\ 033 [4m' def parser_args (): analizador = argparse.ArgumentParser () parser.add_argument ( "- f", "- archivo", help = "指定dominio文件") # parser.add_argument ( "- f", "- archivo", ayuda = "指定dominio文件", action = "store_true")不可控 parser.parse_args de retorno () def httpheaders (url ): proxies = { 'http': 'http://127.0.0.1:8080' } cabeceras = { 'Conexión': 'cerca', 'Upgrade-inseguros-Solicitudes': '1', 'User-Agent': 'Mozilla / 5.0 (Windows NT 10,0; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 57,0. 2987.110 Safari / 537.36' , 'Aceptar': 'text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, * / *; q = 0,8', 'Accept-Encoding': 'gzip , deflate, SDCH, br', 'Accept-Language': 'zh-CN, zh; q = 0,8', } requests.packages.urllib3.disable_warnings () res = requests.get (url, proxies = proxies, cabeceras = cabeceras, timeout = 10, verificar = False) res.encoding = res.apparent_encoding cabeza = res.headers # print ('[+] Url: '+ url,' '+' Content-Type: '+ cabeza [' Content-Type ']) title = re.findall ( "<title> (*) </ title>.", res.text, re.IGNORECASE) [0] .strip () FileOpen (a) imprimir (bcolors.OKGREEN + '[+] url:' + url, ' '+' título: '+ título +' longitud: '+ cabeza [' Content-Length'] + bcolors.ENDC) def FILEOPEN (filename): con abierto (nombre de archivo, 'r') como obj: para adomain en obj.readlines (): adomain = adomain.rstrip ( '\ n') tratar: httpheaders (adomain) excepto excepción como e: impresión (bcolors.WARNING + '[+ ] '+ + adomain "basura Conectar" + bcolors.ENDC) si __name__ == "__main__": try: abc = vars (parser_args ()) a = abc [ 'archivo'] excepto FileNotFoundError como e: print ('目录下无该文件'+ A)
El foso escalonado:
1. Enviar una solicitud a través de las solicitudes HTTPS python3, la autenticación se ha apagado (comprobar = False), la salida de la consola voluntad los siguientes errores:
InsecureRequestWarning: No verificado solicitud HTTPS se está haciendo. Se recomienda encarecidamente la adición de verificación de certificados. Ver: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
línea de comandos que vea este mensaje, el trastorno obsesivo-compulsivo puede ser doloroso.
Solución: Añadir requests.packages.urllib3.disable_warnings antes de ejecutar código ()
2. En relación con el uso del módulo argparse:
parser_args DEF (): Analizador = argparse.ArgumentParser () # crear ArgumentParser) Objeto ( parser.add_argument ( "- f", " - archivo", ayuda = " dominio archivo especificado") # sobre todo para ver el segundo argumento - el valor de autoría -file archivo de clave, por ejemplo: aaa-f, archivo, entonces el valor es 'AAA' # parser.add_argument ( "- F", "- archivo", = Ayuda "archivo de dominio especificado", action = " store_true ") no controlados parser.parse_args de retorno ()