¿Puede Python obtener la solicitud de red de la página web?
(1) Obtener contenido de una página web mediante GET y POST
Web Crawler o Web Spider es un nombre muy vívido.
Si comparamos Internet con una telaraña, Spider es una araña que se arrastra por la red.
El protocolo HTTP define cuatro métodos para interactuar con el servidor, a saber, GET, POST, PUT y DELETE, que en realidad corresponden a "agregar", "eliminar", "cambiar" y "examinar". "
Este artículo habla principalmente sobre el proceso de aprender a realizar solicitudes GET y POST.
En primer lugar, ¿cómo distinguir las solicitudes GET y POST?
Simplemente podemos pasar Los cambios en la barra de direcciones del navegador para distinguir. Por ejemplo, si busca CSDN en Baidu, la página irá a la página de resultados de búsqueda y la URL en la parte superior del navegador cambiará, como se muestra en la figura. arriba Este cambio es para agregar los campos relevantes de la URL inicial a "...". Este proceso separa la URL y la codificación del campo que está consultando. p>
Una solicitud POST es "oculta". " solicitud en la que debe ingresar o enviar algunos datos requeridos por el servidor en el navegador para poder devolverle una interfaz completa. En realidad, esto es lo mismo que la solicitud GET. Sin embargo, la barra de direcciones del navegador no saltará durante este proceso.
¿Cómo se transmiten los datos enviados por la solicitud POST al servidor? Puede obtener los datos cargados mediante algún medio de análisis de la página. De hecho, la solicitud POST envía datos en el cuerpo de HTTP. paquete. Este método sin duda fortalece la seguridad de los datos. A diferencia de la solicitud GET, el usuario puede ver los datos enviados al servidor a través de la URL redirigida. Además de enviar datos, las solicitudes POST también pueden enviar archivos. Las solicitudes GET no se pueden realizar.
En términos generales, se recomienda utilizar GET al realizar consultas de datos y al agregar, modificar o eliminar datos. Utilice POST. Los rastreadores más simples y su función son similares a abrir la página de inicio de Baidu. Si abre Baidu en el navegador y ve el código fuente, encontrará lo que hay en la pantalla. Es exactamente lo mismo que lo que hay en el navegador. Las cuatro líneas de código anteriores imprimirán todos los códigos que recibe el navegador cuando visitamos Baidu.
Este es un ejemplo de un GET simple.
Otro ejemplo de POST
#code=utf-8import urllib2
importar urllib
url='http'//escribe los datos para enviarse como un diccionario value={ 'name':'BUPT', 'age':' 60', 'location':'Beijing'#El contenido del diccionario es arbitrario y no afecta #}
data=urllib.urlencode(value)#Codificar el valor, convirtiéndolo a una codificación estándar #req=urllib2.Request(url,data)#Enviar una solicitud a la URL y transmitir los datos del formulario #response=urllib2. urlopen( req)#Get respuesta#the_page=response.read()#parse#printthe_page#display#123456789101112131415
Después de que se ejecute el programa, puede intentar abrir el código fuente de la página obtenida con un navegador , y encontrará que la página se ve así
Debido a que los datos que proporcionamos al sitio web están escritos aleatoriamente y no existen, obtenemos este resultado.