solicita instalación
- Instalar módulo de solicitudes con pip
- solicitudes de instalación de pip
1. Uso de Get
Formato: get (url, params = None, ** kwargs)
Obtenga parámetros de consulta comunes
- req.status_code : código de estado de respuesta
- req.raw : el cuerpo de respuesta original, leer usando r.raw.read ()
- contenido requerido: cuerpo de respuesta de bytes, necesita decodificar
- req.text: el cuerpo de la respuesta en formato de cadena, se decodificará automáticamente con la codificación de caracteres del encabezado de respuesta
- req.headers: almacena el encabezado de respuesta del servidor como un objeto de diccionario, pero este diccionario es especial, las claves del diccionario no distinguen entre mayúsculas y minúsculas, si la clave no existe, devuelve Ninguno
- req.json () : el decodificador json incorporado en la solicitud
- req.raise_for_status () : solicitud fallida ( respuesta no 200 ) , lanzar excepción
- req.url : obtener la url solicitada
- req.cookies : obtenga las cookies después de la solicitud
- req.encoding : obtiene la codificación
solicitudes de importación url = 'https://www.baidu.com/s' params = { 'Wd': '% E6% B5% 8B% E8% AF% 95' , 'prefixsug': 'ceshi' , } header = {'User-Agent': 'Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 80.0.3987.163 Safari / 537.36' ,} cookie = {} data = request.get ( url = url, encabezados = encabezado, params = params, cookies = cookie) print (data.content.decode ('utf8'))
Afirmación
afirmar data.json () ['estado'] == Falso
Parámetros posteriores a la solicitud
Formato: post (url , datos , json , ...)
Publicar parámetros de consulta comunes
- url : dirección de solicitud de publicación
- datos : Pase la entrada del parámetro cuando el cuerpo es datos de formato application / x-www-form-urlencoded
- json : pasa la entrada del parámetro cuando el cuerpo tiene datos de formato json
- encabezados : pasar parámetros cuando la solicitud posterior requiere parámetros de encabezado
solicitudes de importación , json url = 'https://www.lagou.com/jobs/positionAjax.json' params = { 'needAddtionalResult': 'false' } header = { 'User-Agent': 'Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 80.0.3987.163 Safari / 537.36 ' ,' Content-Type ':' application / x-www-form-urlencoded; charset = UTF-8 ' } cuerpo = {'first': 'true' , 'pn': '1' , 'kd': 'Software Test Engineer' ,} # solicita operación # timeout timeout 2 segundos verificar certificado de seguridad True debe tener un certificado de seguridad, de acuerdo con el navegador Requerir que el contenido sangrado se serialice valor = solicitudes.post (url = url, encabezados = encabezado, params = params, datos = cuerpo, tiempo de espera = 2.00, verificar = True,sangría = Verdadero) print (value.json ()) datos =value.json () filename = 'filename' x = json.dump (data, open (filename, 'w'), sure_ascii = False, indent = True) y = json.load (open (filename, 'r' )) imprimir (y)
Segundo, el módulo JSON
1 、 json.dumps ()
- Se utiliza para convertir datos de tipo dict a str, porque se producirá un error si los datos de tipo dict se escriben directamente en el archivo json, por lo que esta función es necesaria al escribir datos
2 、 json.loads ()
- json.loads () se usa para convertir datos de tipo str a dict .
- El uso con json.dumps () es justo lo contrario.
3 、 json.dump ()
- json.dump () se utiliza para convertir datos dict a str y escribirlos en el archivo json. Los siguientes dos métodos pueden escribir datos en el archivo json
4 、 json.load ()
- json.load () se usa para leer datos del archivo json
Procesamiento de datos JSON
- importar json
- json.dumps (req.json () , sangría = Verdadero , asegurar_ascii = Falso)
- req.json () : conversión de datos en formato json
- sangría = Verdadero : serialización de datos en formato json
- sure_ascii = Falso : procesamiento de datos en chino en formato json
3. Solicitar tiempo de espera, certificado de seguridad y serialización de contenido
Tiempo de espera de solicitud El parámetro de tiempo de espera en Requests.get
La propiedad Verificar está establecida en Falso, y los certificados de seguridad están exentos de verificación. req = request.get (url, verificar = falso)
Sangría de serialización de contenido = True
# solicitudes operación # tiempo de espera tiempo de espera 2 segundos verificar certificado de seguridad True debe tener un certificado de seguridad, serializar de acuerdo con los requisitos del navegador sangrar contenido de valor = solicitudes.get (url = url, encabezados = encabezado, params = params, datos = cuerpo, tiempo de espera = 2.00, verificar = Verdadero, sangría = Verdadero)
Cuarto, procesamiento de cookies
- Transferencia de cookies entre solicitudes .
- Transferencia de cookies entre funciones .
- Entrega de cookies bajo el marco de unittest .
Declarar objeto contenedor de cookies:
- self.cookie = request.cookies.RequestsCookieJar ()
Pase las cookies generadas al contenedor :
- self.cookie.update (r.cookies
Primer paso
Segundo paso
El tercer paso
El cuarto paso
V. Procesamiento de tokens
1. Extraiga el valor del token de la respuesta .
2. Cómo usar el valor del token .
solicitudes de importación key = request.Session () file = key.get ('http://www.baidu.com' ) print (file.cookies)
Requests-html
Instalar
pip3 instalar solicitudes-html
Importar
desde request_html importar HTMLSession
Requests-html
Para utilizar
desde request_html importar HTMLSession
req = HTMLSession ()
params = {'query': 'testing'}
w = r.get ("http://www.sogou.com/web", params = params)
6. Certificación y procesamiento de la SESIÓN
Definición de autenticación de identidad
- La autenticación de identidad utiliza las credenciales proporcionadas por el usuario para identificar al usuario.
- Sesión de preservación de sesión, utilizada para mantener el estado de la sesión;
- El token es autorizar al usuario.
- Relación entre autenticación y autorización de identidad: necesidad de obtener información de identidad antes de la autorización
Tipos de autenticacion
1. Autenticación de identidad básica
HTTP Basic Auth es el método de autenticación propuesto por HTTP1.0
Para cada reino, el cliente se autentica proporcionando un nombre de usuario y contraseña
Cuando la autenticación falla, el servidor recibe la solicitud del cliente y devuelve 401 NO AUTORIZADO. Al mismo tiempo, el método de autenticación y el tipo de autenticación del dominio de autenticación se indican en el campo WWW-Authenticate del encabezado de respuesta HTTP
Importación solicitudes de requests.auth importación HTTPBasicAuth URL = ' 192.613.001.002 ' # de autenticación introducir un nombre de usuario y una contraseña de usuario para el sistema de autenticación por R ^ requests.get = (URL = URL, auth = HTTPBasicAuth ( ' Usuario ' , ' password ' )) print (r.content)
2. Certificación Netrc
Si el método de autenticación no recibe el parámetro de autenticación , Requests intentará obtener la identidad de autenticación requerida por el nombre de host de la URL del archivo netrc del usuario
3. Autenticación implícita
autenticación de resumen : propuesta en HTTP 1.1 , el propósito es reemplazar el método de autenticación básico propuesto en http 1.0
Procesamiento de la sesión
1. El objeto de sesión de la biblioteca de solicitudes puede ayudarnos a mantener ciertos parámetros en todas las solicitudes y también a mantener cookies entre todas las solicitudes emitidas por la misma instancia de sesión .
2. El objeto de sesión de la biblioteca de solicitudes también puede proporcionarnos los datos predeterminados del método de solicitud al establecer los atributos del objeto de sesión.
solicitudes de importación key = request.Session () file = key.get ( ' http://www.baidu.com ' ) print (file.cookies)