¿Cómo utilizar Python para crear un rastreador?
Cuando navegamos por Internet todos los días, a menudo vemos algunas imágenes atractivas y queremos guardarlas y descargarlas, o usarlas como fondos de escritorio o como materiales de diseño.
Nuestro método más común es hacer clic con el botón derecho del mouse y seleccionar Guardar como. Sin embargo, algunas imágenes no tienen la opción de guardar como cuando haces clic con el botón derecho del mouse. La otra forma es capturarlas con una herramienta de captura de pantalla, pero esto reducirá la claridad de la imagen. Bueno, en realidad eres muy bueno, haz clic derecho para ver el código fuente de la página.
¿Podemos usar Python para implementar una función de rastreo tan simple y rastrear el código que queremos localmente? Echemos un vistazo a cómo usar Python para implementar dicha función.
Pasos específicos
Para obtener los datos completos de la página, primero podemos obtener la información completa de la página de la imagen que se va a descargar.
getjpg.py
#coding=utf-8import urllibdef getHtml(url):
página = urllib.urlopen(url)
html = page.read() return html
html = getHtml("blogs.com/fnng/archive/2013/05/20/3089816.html
Si Baidu Tieba Encontré varios fondos de pantalla hermosos y encontré la dirección de la imagen yendo a la sección anterior de la herramienta de visualización, como: src="/forum...jpg" pic_ext="jpeg"
Modificar el código de la siguiente manera:
importar reimportar urllibdef getHtml(url):
page = urllib.urlopen(url)
html = page.read() return. htmldef getImg(html ):
reg = r'src="(. ?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall(imgre, html) return imglist ?
html = getHtml("/p/2460150866")print getImg(html)
Creamos otro getImg( ), se utiliza para filtrar los enlaces de imágenes requeridos en toda la página obtenida. El módulo re contiene principalmente expresiones regulares:
re.compile()? puede compilar la expresión regular en un objeto de expresión regular.
p>El método re.findall()? lee los datos que contienen ?imgre (expresión regular) en html?
Al ejecutar el script se obtendrá la dirección URL de la imagen en toda la página.
3. Guarde los datos filtrados de la página localmente
Recorra las direcciones de las imágenes filtradas a través de un bucle for y guárdelas localmente. El código es el siguiente:
#. codificación =utf-8import urllibimport redef getHtml(url):
página = urllib.urlopen(url)
html = page.read() return htmldef getImg(html): p >
reg = r'src="(. ?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall( imgre , html)
x = 0 para imgurl en imglist:
urllib.urlretrieve(imgurl, 's.jpg' x)
x =1html = getHtml ("/p/2460150866")print getImg(html)
El núcleo aquí es utilizar el método urllib.urlretrieve() para descargar directamente datos remotos al local.
Recorra las conexiones de la imagen obtenida a través de un bucle for. Para que el nombre del archivo de imagen parezca más estandarizado, cámbiele el nombre. La regla de nomenclatura es agregar 1 a la variable x. La ubicación para guardar es por defecto el directorio de almacenamiento del programa.
Una vez completado el programa, verá los archivos descargados en el directorio local.