Quiero aprender Python en secreto y luego sorprender a todos (día 7)

Inserte la descripción de la imagen aquí

El título no pretende ofender, pero creo que este anuncio es divertido
. Si te gusta, toma el mapa mental anterior. No puedo aprender mucho de todos modos.

Prefacio

Revisión inicial: quiero aprender Python en secreto y luego sorprender a todos (día 6)

Dije el día anterior, hoy vamos a aprender sobre los rastreadores, sí, hoy comenzamos a rastrear

Inserte la descripción de la imagen aquí

本系列文默认各位有一定的C或C++基础,因为我是学了点C++的皮毛之后入手的Python,这里也要感谢齐锋学长送来的支持。
本系列文默认各位会百度,学习‘模块’这个模块的话,还是建议大家有自己的编辑器和编译器的,上一篇已经给大家做了推荐啦?

我要的不多,点个关注就好啦
然后呢,本系列的目录嘛,说实话我个人比较倾向于那两本 Primer Plus,所以就跟着它们的目录结构吧。

本系列也会着重培养各位的自主动手能力,毕竟我不可能把所有知识点都给你讲到,所以自己解决需求的能力就尤为重要,所以我在文中埋得坑请不要把它们看成坑,那是我留给你们的锻炼机会,请各显神通,自行解决。

Si es Xiaobai, puede consultar el siguiente párrafo:

Bienvenido a nuestro circulo

Creé un grupo de Python Q&A, los amigos que estén interesados ​​pueden averiguar: ¿Qué tipo de grupo es este?

Portal a través del grupo: Portal


Primera sierra de orugas

Como la mayoría de ustedes, yo mismo jugué rastreadores por primera vez. Solía ​​ser arrastrado por la gente.
Sin embargo, no soy un gran jefe, así que no mostraré muchas habilidades para gatear muy alto cuando suba. Vayamos paso a paso.

Los rastreadores web también se denominan arañas web. Rastrea el contenido web de acuerdo con la dirección web (URL), y la dirección web (URL) es el enlace al sitio web que ingresamos en el navegador. Por ejemplo: https://www.baidu.com/, es una URL.

Por qué rastreador

El objeto de procesamiento de los motores de búsqueda generales son las páginas web de Internet. El número actual de páginas web de Internet ha alcanzado decenas de miles de millones. Por lo tanto, el primer problema para los motores de búsqueda es cómo diseñar un sistema de descarga eficiente para transmitir una cantidad tan grande de datos de páginas web al área local. Cree una copia de seguridad espejo de las páginas web de Internet a nivel local.

Los rastreadores web pueden desempeñar ese papel y completar esta difícil tarea. Es un componente muy crítico y fundamental del sistema de motor de búsqueda.

Regala una castaña muy común: Baidu.
Baidu es una empresa que rastrea continuamente miles de sitios web y los almacena en sus propios servidores. La esencia de su búsqueda en Baidu es buscar información en su servidor. Los resultados que encuentra son algunos hipervínculos. Después de que los hipervínculos son redirigidos, puede visitar otros sitios web.

Arquitectura general del rastreador

Bien, ¿puedes entender la imagen de arriba? Si no es así, veamos algunos diagramas de flujo de usuarios que visitan el sitio web:

Inserte la descripción de la imagen aquí

Este es un proceso de interacción humano-computadora, así que echemos un vistazo a qué tipo de trabajo puede reemplazar el rastreador en este ciclo cerrado:
Inserte la descripción de la imagen aquí

Sí, está muy en consonancia con nuestras características de "inteligencia artificial", liberando nuestras manos.

Pasos de trabajo sobre orugas

1步:获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。

第2步:解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。

第3步:提取数据。爬虫程序再从中提取出我们需要的数据。

第4步:储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。

Así es como funcionan los rastreadores. No importa cómo cambie el contenido del aprendizaje más adelante, el núcleo son los principios del rastreador.

Este capítulo tiene como objetivo comprender los rastreadores de manera directa, por lo que no se extenderán demasiados conceptos innecesarios.

Las características de un excelente rastreador

Un buen código parece tener estas características.
Pero, ¿alguien puede decir las características de una buena arquitectura? Dejé brillar mis ojos y exclamé: "Hermano mayor, llévame"

1. Alto rendimiento

El rendimiento aquí se refiere principalmente a la velocidad de rastreo del rastreador que descarga páginas web. Un método de evaluación común es la cantidad de páginas web que el rastreador puede descargar por segundo como indicador de rendimiento. Cuantas más páginas web se puedan descargar por unidad de tiempo, mayor será el rendimiento del rastreador.

Para mejorar el rendimiento del rastreador, el método de operación del programa para acceder al disco en tiempo de diseño (E / S de disco) E implementación específicaestructura de datosLa elección de es muy importante. Por ejemplo, para la cola de URL que se rastreará y la cola de URL que se rastreará, debido a que la cantidad de URL es muy grande, el rendimiento de las diferentes implementaciones es muy diferente, por lo que la estructura de datos eficiente tiene un gran impacto en el rendimiento del rastreador.

2. Escalabilidad

Incluso si el rendimiento de un solo rastreador es alto, todavía se necesita un período de tiempo prolongado para descargar todas las páginas web localmente. Para acortar el ciclo de rastreo tanto como sea posible, el sistema del rastreador debe tener una buena escalabilidad, es decir, es fácil de aumentar Aproveche la cantidad de servidores y rastreadores para lograr este objetivo.

Los rastreadores web a gran escala actualmente disponibles deben estar distribuidos, es decir, varios servidores están dedicados al rastreo. Cada servidor implementa varios rastreadores, y cada rastreador se ejecuta en varios subprocesos para aumentar la simultaneidad de diversas formas.

Para los proveedores de servicios de motores de búsqueda gigantes, los centros de datos se pueden implementar globalmente y en diferentes regiones, y los rastreadores también se asignan a diferentes centros de datos, lo que es muy útil para mejorar el rendimiento general del sistema de rastreadores.

3. Robustez

Los rastreadores tienen que acceder a varios tipos de servidores web y pueden encontrar muchas situaciones anormales: por ejemplo, la codificación HTML de la página web no está estandarizada, el servidor rastreado se bloquea repentinamente o incluso se arrastra hacia una trampa. Es muy importante que el rastreador pueda manejar correctamente varias situaciones anormales, de lo contrario puede dejar de funcionar de vez en cuando, lo cual es insoportable.

Desde otra perspectiva, asumiendo que el programa del rastreador muere durante el proceso de rastreo, o que el servidor donde se encuentra el rastreador no funciona, un rastreador robusto debería poder hacer: cuando el rastreador se inicia de nuevo, puede restaurar el contenido y la estructura de datos rastreados previamente. En lugar de tener que empezar todo el trabajo desde cero cada vez, esto también es una manifestación de la robustez de los rastreadores.

4. Amistoso

La amabilidad de los rastreadores tiene dos significados: uno es proteger parte de la privacidad del sitio web; el otro es reducir la carga de red del sitio web rastreado. Los rastreadores rastrean varios tipos de sitios web. Para los propietarios de sitios web, parte del contenido no desea que todos busquen contenido, por lo que es necesario configurar un protocolo para informar a los rastreadores qué contenido no se puede rastrear. Actualmente existen dos métodos principales para lograr este objetivo: el protocolo de prohibición de rastreo y la marca de prohibición de la página web.

Este punto se explicará en detalle más adelante.


Primer reptil

El primer paso de un rastreador web es obtener la información HTML de una página web basada en la URL. En Python3, puede usar urllib.request y solicitudes para rastrear páginas web.

 urllib库是python内置的,无需我们额外安装,只要安装了Python就可以使用这个库。
 requests库是第三方库,需要我们自己安装。

Los métodos básicos de la biblioteca de solicitudes son los siguientes:
Inserte la descripción de la imagen aquí

request.get ()

Mira un fragmento de pseudocódigo:

import requests
#引入requests库
res = requests.get('URL')
#requests.get是在调用requests库中的get()方法,
#它向服务器发送了一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出了响应。
#我们把这个响应返回的结果赋值在变量res上。

Les acabo de decir en el grupo que lo más importante para aprender Python es sentar las bases, comenzando con los tipos de datos y las estructuras de datos.
Luego, echemos un vistazo a qué tipo de datos es el valor de retorno del rastreador para obtener los datos.

En primer lugar sólo para encontrar una barra de URL, o al principio de la pequeña tortuga barra de URL:
http://photogz.photo.store.qq.com/psc?/V12wi4eb4HvNdv/ruAMsa53pVQWN7FLK88i5qLH0twfxCgrwzDJPH6IRZadTdk*QTPnqFYrVt5PNiU7vBOh1cvefk4UXqNZcMdzLWowRX1pF4GqWoBZ7YPq5AQ!/b&bo=eAFyAXgBcgERECc!

La URL es un poco más larga, pero se puede experimentar.

import requests 
res = requests.get('URL') 
print(type(res))
#打印变量res的数据类型

结果 : <clase 'request.models.Response'>

Cuatro atributos de uso común de los objetos Response

Inserte la descripción de la imagen aquí

El primero es nuestro status_code, que es un atributo muy común que se usa para verificar si la solicitud es exitosa o no. Puede imprimir su valor de retorno para ver.
Inserte la descripción de la imagen aquí

El siguiente atributo es response.content, que puede devolver el contenido del objeto Response en forma de datos binarios, que es adecuado para descargar imágenes, audios y videos. Lo comprenderá mirando un ejemplo.
Ven, bajemos esa pequeña tortuga, la puse en mi espacio QQ:

import requests
res = requests.get('http://photogz.photo.store.qq.com/psc?/V12wi4eb4HvNdv/ruAMsa53pVQWN7FLK88i5qLH0twfxCgrwzDJPH6IRZadTdk*QTPnqFYrVt5PNiU7vBOh1cvefk4UXqNZcMdzLWowRX1pF4GqWoBZ7YPq5AQ!/b&bo=eAFyAXgBcgERECc!')
#发出请求,并把返回的结果放在变量res中
pic=res.content
#把Reponse对象的内容以二进制数据的形式返回
photo = open('乌龟.jpg','wb')
#新建了一个文件ppt.jpg,这里的文件没加路径,它会被保存在程序运行的当前目录下。
#图片内容需要以二进制wb读写。你在学习open()函数时接触过它。
photo.write(pic)
#获取pic的二进制内容
photo.close()
#关闭文件

También puede rastrear las fotos pequeñas en su propio espacio.
Algunos amigos preguntarán: ¿Cómo sé la URL de mi pequeña foto?
De hecho, es fácil de hacer: haga clic con el botón derecho en la foto pequeña y abra una nueva pestaña. ¿No tiene la URL?

Pase lo que pase, simplemente arrastre la foto pequeña en este blog, arrástrela a una nueva ventana y la URL estará allí.

Bueno, la práctica de hoy probablemente esté aquí.


Después de hablar sobre response.content, continúe mirando response.text, este atributo puede devolver el contenido del objeto Response en forma de cadena, que es adecuada para texto,Código fuente de la página webDescargas.

Mire claramente, es el código fuente.

Aquí, solo busque un sitio web, como el sitio web de mi blog, experimentémoslo:

import requests
#引用requests库
res = requests.get('https://editor.csdn.net/md?articleId=109320746')
novel=res.text
#把Response对象的内容以字符串的形式返回
k = open('《第七天》.txt','a+')
#创建一个名为《第七天》的txt文档,指针放在文件末尾,追加内容
k.write(novel)
#写进文件中     
k.close()
#关闭文档

A continuación, miramos el último atributo: response.encoding, que puede ayudarnos a definir la codificación del objeto Response.

En primer lugar, se desconoce la codificación de los datos de destino. Después de enviar una solicitud con request.get (), obtendremos un objeto Response, donde la biblioteca de solicitudes hará su propio juicio sobre el tipo de codificación de los datos. ¡pero! Este juicio puede ser exacto o no.

Si el juicio es exacto, el contenido del texto de respuesta que imprimimos es normal y no hay distorsión, entonces no se utiliza la codificación res. Si el juicio no es exacto, habrá un montón de códigos distorsionados, entonces podemos verificar La codificación de los datos de destino y luego utilice res.encoding para definir la codificación como un tipo consistente con los datos de destino.


Estoy cansado de hablar, mencionemos un poco más.

Nuestro país tiene una ley completa

De hecho, las leyes de nuestro país sobre rastreadores aún se están mejorando, así que hágalo lo antes posible.

En circunstancias normales, al servidor no le importan los rastreadores pequeños, pero el servidor rechazará la alta frecuencia de rastreadores grandes y rastreadores maliciosos, porque esto traerá una gran presión o daño al servidor.
Sin embargo, los servidores son generalmente bienvenidos a los motores de búsqueda (como acabo de decir, una de las tecnologías centrales de Google y Baidu es el rastreo). Por supuesto, esto es condicional y estas condiciones se escribirán en el acuerdo de Robots.

El protocolo de robots es un código de ética reconocido para los rastreadores de Internet. Su nombre completo es "Protocolo de exclusión de robots". Este protocolo se utiliza para indicar a los rastreadores qué páginas se pueden rastrear y cuáles no.
Cómo verificar el acuerdo de robots del sitio web es muy simple, simplemente agregue /robots.txt después del nombre de dominio del sitio web.

El inglés que se usa con más frecuencia en el acuerdo es Allow y Disallow. Allow representa acceso y Disallow representa acceso prohibido.

La herramienta está en sus manos, cómo usarla es su elección. Cuando esté rastreando datos de un sitio web, no olvide verificar si el protocolo de Robots del sitio web le permite rastrear.

Al mismo tiempo, limitar la velocidad de los rastreadores, agradecer al servidor que proporciona los datos, evitar demasiada presión sobre él y mantener un buen orden en Internet es lo que debemos hacer.

De lo anterior es de lo que vamos a hablar hoy, la próxima vez analizaremos esas páginas web y obtendremos lo que queremos en las páginas web.

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43762191/article/details/109320746
Recomendado
Clasificación