Después de leer esta serie Todos los reptiles son fáciles! (A) reptiles biblioteca introducción y solicitud

1: Introducción a los reptiles proceso

  1. Identificar las necesidades: ¿Necesita algo? Es necesario bellas imágenes
  2. Mirando requisitos: ¿Dónde puedo encontrar lo que buscas? Baidu Galería
  3. solicitud de envío: Enviar solicitud de acceso a la página, el acceso al código fuente de la página.
  4. Analiza los datos: extraer la información que necesitamos de ellos involucró código fuente.

Aquí Insertar imagen Descripción

2: Uso básico de Solicitud

En primer lugar tenemos que saber: GET, POST, PUT, DELETE, las opciones de solicitud de método como un resumen breve . Se utiliza generalmente petición GET rastreador.


instalar

pip install requests

uso básico

import requests as req

#定义请求的url
url = "https://www.baidu.com"

#发起get请求
res = req.get(url)

#获取相应结果
print(res) #返回响应码
print(res.content) #返回二进制的文本流

Parámetro Descripción 1. solicitud de método ()

request()La sintaxis de los métodos siguientes:

requests.request(method, url, **kwargs)

· Procedimiento: · parámetros, es decir, método de transmisión de la solicitud HTTP correspondiente a la más de seis métodos; es decir url URL de transmisión de petición. Estos dos parámetros son parámetros requeridos.

Por ejemplo que "Get" método para Baidu de acceso, a continuación, el código correspondiente se escribe encima de la

Así que conseguimos un objeto Respuesta es llamado res. Podemos obtener la información que desea de este objeto.

Aquí ilustramos parámetro opcional kwargs **:


1.params

Byte diccionario o una secuencia, como se ha añadido al parámetro de URL, el parámetro utilizado para obtener la solicitud.

Por ejemplo, queremos buscar información acerca de "Viaje al Oeste" en el berro, un método consiste en coser manualmente cadena URL, "https://www.douban.com/search?q= Viaje al Oeste".

Otro enfoque es la forma que en un diccionario como un paramsparámetro pasado:

params = {"q":"西游记"}
r = requests.request("get","https://www.douban.com/search", params = params)

2.data

archivo de objeto de diccionario o secuencia de bytes, ya que el contenido de la solicitud, se utiliza para solicitar el envío de correos.

Cuando inicie sesión, registro y otras operaciones hay que enviar el formulario, es necesario utilizar este parámetro. Por ejemplo, cuando usamos correo electrónico para registrar toda la red, tiene que pasar este parámetro.

loginurl = "http://www.renren.com/PLogin.do"
postdata = {"email": "[email protected]", 
            "password": "12345678"}
r = requests.requests("post", loginurl, data = postdata)

Por supuesto, la solicitud anterior no puede tener éxito, porque hay una falta de algunos parámetros clave.


3 JSON

datos JSON-formato, ya que el contenido de la solicitud, que se utiliza comúnmente en la solicitud POST.

Eso JavaScript Object notación JSON (JavaScript Object Notation), que es la sintaxis para almacenar e intercambiar mensajes de texto. Su forma es similar a la del diccionario en Python:

'{"email": "[email protected]", "password": "12345678"}'

Pero tenga en cuenta que el diccionario es un tipo de datos, y una cadena JSON.

Varios datos de idiomas JSON módulos de procesamiento han asociado. Python módulo de JSON utiliza comúnmente, introduciremos más adelante.


4 cabeceras

Diccionario, cabeceras HTTP personalizados.

Piense en cuando usamos el teléfono, ipad, ordenadores acceso simultáneo a la página principal de Baidu (con un sitio web), la página de Baidu devuelto es el mismo que lo que?

Por supuesto que no. Así servidor de Baidu es cómo sabemos lo que es terminal accesibles?

La respuesta es que headersel parámetro “user-agent”. Si no fijamos el headersparámetro, “user-agent”el valor predeterminado es "python-requests/2.19.1". Esto es equivalente a decir abiertamente el servidor, la solicitud de la oruga pitón. La creación de un programa de servidor de anti-subida puede negarse a responder.

Por lo tanto, podemos personalizar las cabeceras de parámetros se hacen pasar por el navegador.

Disfrazado de conjunto navegador Chrome:

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}

Basta con echar un vistazo a la página web:
Aquí Insertar imagen Descripción
el otro no es una gran cantidad Solía ~


Propiedades y métodos de un objeto 2. Respuesta

  • status_codePropiedades: Devuelve el código de estado de solicitud: código de estado 200 indica que la solicitud se ha realizado correctamente.
    En general, el código de estado indica el éxito 2XX, 3XX redirecciones, ambos de los cuales tienen éxito; 4XX expresar errores en la solicitud, como un error nuestro servidor común expresado 404,5XX, estos dos son considerados fracasos.
  • request.headersPropiedades: cabeceras de respuesta de retorno, por ejemplo ,, como el tiempo, el camino, es importante user-agentidentificar la información. por ejemplo{'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
  • encoding属性: Solicitudes responderán de acuerdo con la información del encabezado Content-Typedel archivo de determinación de modo de codificación. Si no se encuentra el campo correspondiente, el valor predeterminado es “ISO-8859-1”.
  • apparent_encodingPropiedades: En realidad no hay una gran cantidad de páginas a la norma ISO-8859-1 codificación. Las solicitudes también proporciona operaciones dependen farsa de adivinar el código. Afortunadamente, es conjetura muy precisa.
  • textPropiedades: devuelve una respuesta de contenido en forma de texto.
  • contentPropiedades: devuelve un contenido de la respuesta en forma de bytes. Si la res.content.decode('utf-8')decodificación, entonces el efecto es equivalente a .text.
  • cookiesPropiedades: Si la respuesta contiene algunas de la cookie, puede utilizar esta propiedad para acceder con más rapidez.
  • urlPropiedades: devolver una respuesta de la dirección URL. Debido a las redirecciones, tratar y dar respuesta a nuestra dirección solicitada no se puede producir la misma situación.
  • iter_content()Método: al recibir datos, mientras que el procesamiento de datos
  • close()Método: para cerrar la conexión.
  • json()Métodos: Las solicitudes también tiene incorporado un decodificador de JSON que puede ayudar a tratar con datos JSON. Si el contenido JSON codificado contenido de la respuesta, se devuelve una lista de tipos de datos, en el que una lista de elementos del tipo diccionario.
  • raise_for_status(): Si es anormal arrojará una categoría de excepción "HTTPError".

Solicitud Detallada 3.request cabecera

Encabezado de solicitud es una parte muy importante, digno de un estudio separado a la vista. Hay muchos sitios web para reconocer su reptil se le negará el acceso, por lo que necesitamos para ajustar la cabecera de la solicitud.

volver la cabeza a la información que hemos visto este acceso del navegador, sólo tenemos que copiar esto abajo
Aquí Insertar imagen Descripción

url = "https://www.sogou.com/"
#定义请求头信息
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36 FS'        
}

#发起get请求
res = req.get(url, headers = headers)

JSON 4.post objeto de solicitud y aceptación

El código siguiente llama traducción Baidu de los datos de elementos de páginas kw en los datos "Hola", traducir y entonces obtenemos los resultados

import requests as req

#定义请求的url:百度翻译
url = "https://fanyi.baidu.com/sug"
#定义请求头信息
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36 FS'        
}

#定义post请求需要的参数
data={'kw':'你好'}
#发起post请求
res = req.post(url, headers = headers, data=data)
print(res.json())
{'errno': 0, 'data': [{'k': '你好', 'v': '[nǐ hǎo] how do you do; how are you; hello;'}, {'k': '你好,陌生人', 'v': '网络 Hello Stranger; knowing me knowing you;'}, {'k': '你好吗', 'v': 'How are you; How are you doing; How do you do;'}]}

Se puede ver que esto es un conjunto de datos JSON, y cómo ponemos los elementos correspondientes antes y después de que el extracto de traducción fuera de él? 'Hola' se extrae fácilmente, sólo es necesario res.json()['data'][0]['k]'que, entonces hellotenemos que llegar a

if res.status_code == 200:
    print("请求成功")
    data = res.json() #转化成json数据
    if data['errno'] == 0: #post请求回来的数据正常
        print("响应成功")
        k = data['data'][0]['k'] #输出返回数据的数据列表的第一个元素
        v = data['data'][0]['v'].split(';')[-2]
        print(k,'===',v)

Los resultados operativos

请求成功
响应成功
你好 ===  hello

~ Continuará

Publicados 186 artículos originales · alabanza ganado 13 · vistas 9281

Supongo que te gusta

Origin blog.csdn.net/csyifanZhang/article/details/105279632
Recomendado
Clasificación