Aprenda rápidamente la tecnología central del rastreador de Python y rastree imágenes de red en lotes

Para los rastreadores, Python puede ser la primera opción para muchos socios. Tenemos que centrarnos en aprender los rastreadores de Python. ¡Este artículo le enseña cómo dominar rápidamente el núcleo de los rastreadores de Python! Si hay algo que no está claro, ¡puede dejar un mensaje!

 

1. Información general

Este artículo implementa principalmente un rastreador simple, cuyo propósito es descargar imágenes de una página de Baidu Tieba. Los pasos para descargar imágenes son los siguientes:

Muchas personas aprenden Python y después de dominar la gramática básica, no saben dónde encontrar casos para comenzar.

Muchas personas que han realizado estudios de casos no saben cómo adquirir conocimientos más avanzados.

Entonces, para estos tres tipos de personas, les proporcionaré una buena plataforma de aprendizaje, ¡gratis para recibir tutoriales en video, libros electrónicos y el código fuente del curso!

Grupo QQ: 701698587

(1) Obtener el contenido de texto html de la página web;

(2) Analizar las características de las etiquetas html de las imágenes en html y utilizar un análisis regular para analizar la lista de todos los enlaces de URL de imágenes;

(3) Descargue la imagen a la carpeta local de acuerdo con la lista de enlaces URL de la imagen.

2. Implementación de urllib + re

    #!/usr/bin/python
    # coding:utf-8
    # 实现一个简单的爬虫,爬取百度贴吧图片
    import urllib
    import re
    # 根据url获取网页html内容
    def getHtmlContent(url): 
     page = urllib.urlopen(url)
     return page.read()
    # 从html中解析出所有jpg图片的url
    # 百度贴吧html中jpg图片的url格式为:<img ... src="XXX.jpg" width=...>
    def getJPGs(html): 
     # 解析jpg图片url的正则 
     jpgReg = re.compile(r'<img.+?src="(.+?\.jpg)" width') # 注:这里最后加一个'width'是为了提高匹配精确度 
     # 解析出jpg的url列表 
     jpgs = re.findall(jpgReg,html)
     return jpgs
    # 用图片url下载图片并保存成制定文件名
    defdownloadJPG(imgUrl,fileName): 
     urllib.urlretrieve(imgUrl,fileName)
     # 批量下载图片,默认保存到当前目录下
    def batchDownloadJPGs(imgUrls,path ='./'): 
     # 用于给图片命名 
     count = 1 
     for url in imgUrls:
     downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))
     count = count + 1
    # 封装:从百度贴吧网页下载图片
    def download(url): 
     html = getHtmlContent(url)
     jpgs = getJPGs(html)
     batchDownloadJPGs(jpgs)
    def main(): 
     url = 'http://tieba.baidu.com/p/2256306796' 
     download(url)
    if __name__ == '__main__':
     main()



Ejecute el script anterior, después de unos segundos, la descarga se completa y puede ver que la imagen se ha descargado en el directorio actual:

Inserte la descripción de la imagen aquí

3. Realización de solicitudes + re

A continuación, se usa la biblioteca de solicitudes para realizar la descarga y se vuelven a implementar las funciones getHtmlContent y downloadJPG con solicitudes.

#!/usr/bin/python
# coding:utf-8
# 实现一个简单的爬虫,爬取百度贴吧图片
import requests
import re
# 根据url获取网页html内容
def getHtmlContent(url): 
 page = requests.get(url):
 return page.text
# 从html中解析出所有jpg图片的url
# 百度贴吧html中jpg图片的url格式为:<img ... src="XXX.jpg" width=...>
def getJPGs(html): 
 # 解析jpg图片url的正则 
 jpgReg = re.compile(r'<img.+?src="(.+?\.jpg)" width') # 注:这里最后加一个'width'是为了提高匹配精确度 
 # 解析出jpg的url列表 
 jpgs = re.findall(jpgReg,html)
 return jpgs
# 用图片url下载图片并保存成制定文件名
def downloadJPG(imgUrl,fileName): 
 # 可自动关闭请求和响应的模块 
 from contextlib import closing
 with closing(requests.get(imgUrl,stream = True)) as resp:
 with open(fileName,'wb') as f:
 for chunk in resp.iter_content(128):
 f.write(chunk)
# 批量下载图片,默认保存到当前目录下
defbatchDownloadJPGs(imgUrls,path ='./'): 
 # 用于给图片命名 
 count = 1 
 for url in imgUrls:
 downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))
 print '下载完成第{0}张图片'.format(count)
 count = count + 1
# 封装:从百度贴吧网页下载图片
def download(url): 
 html = getHtmlContent(url)
 jpgs = getJPGs(html)
 batchDownloadJPGs(jpgs)
def main(): 
 url = 'http://tieba.baidu.com/p/2256306796' 
 download(url)
if __name__ == '__main__':
 main()



Salida: Igual que antes.

¡Espero que este simple estuche de rastreo de Python pueda ayudarlo a quienes son nuevos en el rastreo de Python!
 

Supongo que te gusta

Origin blog.csdn.net/Python_kele/article/details/115284926
Recomendado
Clasificación