aprendizaje del rastreador de Python 24

aprendizaje del rastreador de Python 24

Cuarto, el uso de httpx

4-1 Introducción

Hasta ahora, hemos aprendido el uso de la biblioteca urllib, el uso de la biblioteca de solicitudes y el contenido relacionado de las expresiones regulares. Aquí tenemos que mencionar las limitaciones de la biblioteca urllib y la biblioteca de solicitudes: ambas solo admiten HTTP/1.1 y no admiten HTTP/2.0. Una vez que llegamos a un sitio que solo admite HTTP/2.0, está muerto.

# 此网站就是一个强制使用HTTP/2.0的网站
url = 'https://spa16.scrape.center/'

import requests

resp = requests.get(url)
print(resp.text)

resultado de la operación:

inserte la descripción de la imagen aquí

Para lidiar con este dilema, tenemos que usar una herramienta que admita HTTP2.0 - biblioteca httpx

4.2 Instalación de la biblioteca httpx

A la vieja usanza, primero instala una ola

pip install httpx			# 先安装 httpx 库
pip3 install httpx[http2]	# 然后安装 httpx对HTTP2.0的支持模块

4.3 Uso básico

El uso de la biblioteca httpx es muy similar a las solicitudes:

import httpx

url = 'https://www.baidu.com'

resp = httpx.get(url)
print(resp.status_code)
print(resp.headers)
print(resp.text)

resultado de la operación:

inserte la descripción de la imagen aquí

¡es bueno! ¡Muy animado! Déjame probar la conexión que no pude conectar antes:

import httpx

url = 'https://spa16.scrap.center/'

resp = httpx.get(url)
print(resp.status_code)
print(resp.headers)
print(resp.text)

resultado de la operación:

inserte la descripción de la imagen aquí

¿Qué sucedió? ¿Por qué no funciona?

No se preocupe, de hecho, httpx no habilitará el soporte para HTTP2.0 de forma predeterminada. En este momento, debemos habilitarlo manualmente:

import httpx

url = 'https://spa16.scrape.center/'
c = httpx.Client(http2=True)
resp = c.get(url)
print(resp.text)

resultado de la operación:

inserte la descripción de la imagen aquí

Como se mencionó anteriormente, la biblioteca httpx es muy similar a la biblioteca de solicitudes, de manera similar, la biblioteca httpx también tiene post(), put(), delete(), patch() y otros métodos, puede probarlo usted mismo.

¡Definitivamente no estoy siendo flojo!

Finaliza hoy, continúa mañana

Supongo que te gusta

Origin blog.csdn.net/szshiquan/article/details/123855922
Recomendado
Clasificación