¿Qué cinco cosas deben saber los novatos para comenzar con los rastreadores de Python?

Si desea comenzar con los rastreadores de Python, primero debe resolver cuatro problemas:

  • Familiarizado con la programación en Python.
  • Aprende sobre HTML
  • Comprender los principios básicos del rastreo web.
  • Aprenda a utilizar la biblioteca del rastreador de Python

1. ¿Qué debes saber sobre un rastreador?

Los rastreadores web en realidad se denominan recopilación de datos de red , que es más fácil de entender.

Consiste en solicitar datos (formulario HTML) del servidor de red a través de la programación y luego analizar el HTML para extraer los datos que desea.

Se puede resumir en cuatro pasos principales:

  1. Obtener datos HTML basados ​​en la URL
  2. Analizar HTML y obtener información de destino
  3. Almacenamiento de datos
  4. Repita el paso uno

Esto involucrará bases de datos, servidores web, protocolos HTTP, HTML, ciencia de datos, seguridad de redes, procesamiento de imágenes, etc. Pero para los principiantes, no es necesario dominar tanto.

2. ¿Hasta qué punto necesitas aprender Python?

Si no conoce Python, primero debe aprender Python, que es un lenguaje muy fácil (en comparación con otros lenguajes).

La sintaxis básica de los lenguajes de programación no es más que tipos de datos, estructuras de datos, operadores, estructuras lógicas, funciones, E/S de archivos, manejo de errores, etc. Puede resultar aburrido aprenderlo, pero no es difícil.

Cuando recién comienza con los rastreadores, ni siquiera necesita aprender clases de Python, subprocesos múltiples, módulos y otro contenido ligeramente difícil. Encuentre un libro de texto o un tutorial en línea para principiantes, dedique más de diez días y comprenderá entre un 30 y un 40% de los conceptos básicos de Python. ¡En este momento, podrá jugar con rastreadores!

Por supuesto, la premisa es que debes escribir el código con cuidado durante estos diez días y analizar la lógica gramatical repetidamente, como listas, diccionarios, cadenas, declaraciones if, bucles for, etc. de corazón y de manos.

Puede ir a Nuke.com para practicar en línea. Esta hoja de preguntas introductorias de Python lo guiará con gran detalle desde el principio de Hello World hasta tareas prácticas, análisis de datos y aprendizaje automático, qué funciones debe usar y cómo debe ingresar y producción.

Hay muchas opciones en términos de materiales didácticos. Personalmente recomiendo los documentos oficiales de Python y los tutoriales concisos de Python . El primero es más sistemático y rico, y el segundo es más conciso.

3. Por qué necesitas entender HTML

Como se mencionó anteriormente, los datos que el rastreador quiere rastrear están ocultos en el HTML de la página web, ¡lo cual es un poco confuso!

Así explica Wikipedia HTML

El lenguaje de marcado de hipertexto ( inglés: lenguaje de marcado de hipertexto , conocido como: HTML ) es un lenguaje de marcado estándar que se utiliza para crear páginas web . HTML es una tecnología básica que muchos sitios web suelen utilizar junto con CSS y JavaScript para diseñar interfaces de usuario para páginas web, aplicaciones web y aplicaciones móviles [3] . Los navegadores web pueden leer archivos HTML y convertirlos en páginas web visuales. HTML describe la semántica estructural de un sitio web a medida que se presentan pistas, lo que lo convierte en un lenguaje de marcado en lugar de un lenguaje de programación .

En resumen, HTML es un lenguaje de marcado utilizado para crear páginas web, que incorpora texto, imágenes y otros datos, que el navegador puede leer y representar en la página web que vemos.

Es por eso que primero rastreamos HTML y luego analizamos los datos, porque los datos están ocultos en HTML.

Aprender HTML no es difícil, no es un lenguaje de programación, solo necesitas estar familiarizado con sus reglas de marcado, hablemos brevemente de ello aquí.

El marcado HTML contiene varias partes clave, como etiquetas (y sus atributos), tipos de datos basados ​​en caracteres, referencias de caracteres y referencias de entidades.

Las etiquetas HTML son las más comunes y suelen aparecer en pares, como con y .<h1></h1>

Entre estas etiquetas que aparecen en pares, la primera etiqueta es la etiqueta de inicio y la segunda etiqueta es la etiqueta de final. Entre las dos etiquetas está el contenido del elemento (texto, imagen, etc.). Algunas etiquetas no tienen contenido y son elementos vacíos, como .<img>

El siguiente es un ejemplo de un programa clásico Hola Mundo :

Los documentos HTML se componen de elementos HTML anidados. Están representados por etiquetas HTML, entre corchetes angulares, como [56]<p>

En general, un elemento está representado por un par de etiquetas: una "etiqueta inicial" y una "etiqueta final" . Los elementos que contienen contenido de texto se colocan entre estas etiquetas.<p></p>

4. Comprender los principios básicos del rastreador web de Python.

Al escribir un programa de rastreo de Python, solo necesita hacer las dos cosas siguientes:

  • Enviar una solicitud GET para obtener HTML
  • Analizar HTML y obtener datos

Python tiene bibliotecas correspondientes para ayudarte a hacer estas dos cosas, solo necesitas saber cómo usarlas.

5. Utilice la biblioteca de Python para rastrear los títulos e imágenes de la página de inicio de Baidu

En primer lugar, para enviar solicitudes de datos HTML, puede utilizar la biblioteca integrada de Python urllib. Esta biblioteca tiene una función urlopen que puede obtener archivos HTML basados ​​en la URL. Aquí, intente obtener el contenido HTML de la página de inicio de Baidu " https ://www.baidu.com/ " para ver el efecto. :

Echemos un vistazo a cómo se ve el HTML real de la página de inicio de Baidu. Si está utilizando Google Chrome, abra Configuración>Más herramientas>Herramientas de desarrollo en la página de inicio de Baidu, haga clic en el elemento y podrá verlo. 

En comparación, sabrá que el HTML que acaba de obtener a través del programa Python es el mismo que el de la página web.

Después de obtener el HTML, el siguiente paso es analizar el HTML. Debido a que el texto, las imágenes y los videos que desea están ocultos en HTML, debe extraer los datos requeridos de alguna manera.

Python también proporciona muchas bibliotecas poderosas para ayudarlo a analizar HTML. Aquí, la famosa biblioteca de Python BeautifulSoup se utiliza como herramienta para analizar el HTML obtenido anteriormente.

BeautifulSoup es una biblioteca de terceros que debe instalarse y utilizarse. Simplemente instálelo con pip en la línea de comando:

pip install bs4

BeautifulSoup convertirá el contenido HTML en contenido estructurado. Solo necesitas extraer datos de las etiquetas estructuradas:

Este título está envuelto en dos etiquetas, una es la etiqueta de primer nivel <head><head> y la otra es la etiqueta de segundo nivel <title><title>, así que simplemente saque la información de la etiqueta.

# 导入urlopen函数
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 打印标题
print(title)

Eso es todo, el título de la página de inicio de Baidu se extrajo con éxito.

¿Qué sucede si quiero descargar la imagen del logotipo de la página de inicio de Baidu?

El primer paso es obtener todas las etiquetas de imágenes y URL de la página web. Puede utilizar el método findAll de BeautifulSoup, que puede extraer la información contenida en las etiquetas.

En términos generales, toda la información de la imagen en HTML estará en la etiqueta "img", por lo que podemos obtener la información de todas las imágenes a través de findAll ("img").

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 使用find_all函数获取所有图片的信息
pic_info = obj.find_all('img')
# 分别打印每个图片的信息
for i in pic_info:
    print(i)

Echa un vistazo a los resultados:

Se imprimen los atributos de todas las imágenes, incluida la clase (nombre de clase del elemento), src (dirección del enlace), largo, ancho y alto, etc.

Hay una imagen del logotipo de la página de inicio de Baidu y la clase (nombre de clase de elemento) de la imagen es index-logo-src.

[<img class="index-logo-src" height="129" hidefocus="true" src="//www.baidu.com/img/bd_logo1.png" usemap="#mp" width="270"/>, <img alt="到百度首页" class="index-logo-src" src="//www.baidu.com/img/baidu_jgylogo3.gif" title="到百度首页"/>]

Puede ver que la dirección del enlace de la imagen está en el atributo src. Necesitamos obtener la dirección del enlace de la imagen:

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 只提取logo图片的信息
logo_pic_info = obj.find_all('img',class_="index-logo-src")
# 提取logo图片的链接
logo_url = "https:"+logo_pic_info[0]['src']
# 打印链接
print(logo_url)

resultado:

Después de obtener la dirección, puede utilizar la función urllib.urlretrieve para descargar la imagen del logotipo.

# 导入urlopen
from urllib.request import urlopen
# 导入BeautifulSoup
from bs4 import BeautifulSoup as bf
# 导入urlretrieve函数,用于下载图片
from urllib.request import urlretrieve
# 请求获取HTML
html = urlopen("https://www.baidu.com/")
# 用BeautifulSoup解析html
obj = bf(html.read(),'html.parser')
# 从标签head、title里提取标题
title = obj.head.title
# 只提取logo图片的信息
logo_pic_info = obj.find_all('img',class_="index-logo-src")
# 提取logo图片的链接
logo_url = "https:"+logo_pic_info[0]['src']
# 使用urlretrieve下载图片
urlretrieve(logo_url, 'logo.png')

La imagen final se guarda en 'logo.png'

6. Conclusión

Este artículo utiliza el caso del rastreo de títulos de páginas de inicio e imágenes de logotipos de Baidu para explicar los principios básicos de los rastreadores de Python y el uso de bibliotecas de Python relacionadas. Este es un conocimiento de rastreadores relativamente básico, y hay muchas bibliotecas y marcos excelentes de rastreadores de Python esperando ser aprendidos. más tarde.

Por supuesto, si domina los puntos de conocimiento analizados en este artículo, ya estará familiarizado con los rastreadores de Python. ¡Vamos muchacho!

Finalmente, también hay sitios web para repasar preguntas reales de Python:

Niuke.com - herramienta de búsqueda de empleo | banco de preguntas de pruebas escritas | experiencia en entrevistas | recomendación interna de contratación de pasantías, solución integral para búsqueda de empleo y empleo_Niuke.com www.nowcoder.com/link/pc_kol_zwj Editor


Hay ejercicios especiales centrados en puntos de conocimiento, así como hojas de preguntas compiladas entre las que puede elegir. Todo el contenido es gratuito. Los amigos interesados ​​pueden probarlo.

Supongo que te gusta

Origin blog.csdn.net/Everly_/article/details/133159008
Recomendado
Clasificación