Importar la Solicitud urllib partir de la urllib Importe el análisis sintáctico # 1.urlopen abrir la página, leer el contenido de la página RESP = request.urlopen ( 'http://www.baidu.com') print (resp.read ()) # Lea todo de impresión (resp.read (10)) # 10 lee la primera impresión (resp.readline ()) # lee una línea de impresión (resp.readlines ()) # lee una pluralidad de filas, en la forma de una lista de impresión (resp.getcode ( )) # se ha podido recuperar código de respuesta # 2.urlretrieve descarga request.urlretrieve ( 'http: //www.baidu.com','baidu.html') request.urlretrieve ( 'https://img-blog.csdn.net/ 20180103144259961? Marca de agua / 2 / texto / aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVlYWZheQ == / fuente / 5a6L5L2T / fontSize / 400 / llenado / I0JBQkFCMA == / la Disolver / 70 / Gravity / Sureste '' VS.jpg ') # 3.urlencode codificación de la función url = " http://www.baidu.com/s " los params = {" WD ":" Jay "} Qs = parse.urlencode (params) url = + NEWURL "?" + QS Imprimir (el resultado) # url conseguir todo el contenido de la información = Request.urlopen RESP (URL) de impresión (RESP) # 4.parse_qs decodificación función = Resultado parse.parse_qs ( "WD = E5 %%% 91 es el B0 A8 9D %%% %%% E6 E4 BC A6") Imprimir (Resultado ) # 5.urlparse get url información de contenido url = "http://www.baidu.com/s?wd=python&username=abc#1" el Resultado = parse.urlparse (url) Imprimir (el resultado) # url conseguir todo el contenido de la información Imprimir ( "esquema:", result.scheme) Imprimir ( "netloc:", result.netloc) Imprimir ( "camino", result.path) Imprimir ( "params:", result.params) Imprimir ( "Pregunta:" , result.query) Imprimir ( "el fragmento:", result.fragment) # 6.urlsplit get url información de contenido, no hay parametros url = "http://www.baidu.com/s?wd=python&username=abc#1" resultar = análisis. imprimir ( "esquema:", result.scheme) imprimir ( "netloc:", result.netloc) print ( "camino", result.path) # print ( "params:", result.params) print ( "consulta:", result.query) print ( "fragmento: ", result.fragment)
`Biblioteca urllib` is` Python` una biblioteca solicitud de red básica. Puede simular el comportamiento del navegador, envía una solicitud al servidor especificado, y puede guardar los datos devueltos por el servidor. ### urlopen función: en el `urllib`` biblioteca Python3`, todas las solicitudes de red y métodos relacionados, se ajustan a` urllib.request` debajo del módulo al primer vistazo a la utilización de urlopen` básica functions` : `` `Python desde urllib importación Solicitud RESP = request.urlopen ( 'http://www.baidu.com') Imprimir (resp.read ()) ` `` de hecho, el uso de un navegador de Baidu de acceso, derecha Vista fuente código. Nos encontrará simplemente imprimir los datos es exactamente el mismo. En otras palabras, las anteriores tres líneas de código que nos han ayudado a Baidu página de inicio de todos abajo el código de subida. Un código url pitón básica correspondiente a la solicitud es realmente muy simple. `Urlopen` en adelante, las funciones explicada con detalle: 1.` url`: solicitud de URL. 2. `data`: request` data`, si se establece este valor, se convertirá en` petición Post`. 3. Valor de retorno: El valor de retorno es un objeto http.client.HTTPResponse` `que es un identificador de archivo de objetos de clase. Hay `leer (tamaño)`, ` readline`,` readlines` `getcode` y similares. ### Función urlretrieve: Esta función puede ser fácilmente guardado en un archivo local en una página web. El siguiente código puede ser fácilmente descargado en la página principal del Baidu locales: Python `` ` de la solicitud de importación urllib request.urlretrieve ( 'http://www.baidu.com/','baidu.html') ` `` ### urlencode función: Cuando el navegador envía una petición, si la URL contiene china u otros caracteres especiales, el navegador se codificará automáticamente a nosotros. Si se utiliza el código de solicitud de transmisión, entonces debe ser codificado manualmente, esta vez se debe utilizar para lograr la función `urlencode`. `Urlencode` can` URL` de datos de diccionario en datos codificados. Código de la muestra es la siguiente: `` `Python desde el urllib el análisis sintáctico de importación de datos = { 'nombre': 'base de oruga', 'el saludo': 'Hola Mundo', 'Age':} 100 QS = parse.urlencode (Datos) Imprimir (QS ) `` ` funcionan ### parse_qs: puede ser decodificado a través de parámetros de URL codificadas. Código de la muestra es la siguiente: `` `Python desde el urllib Importe el análisis sintáctico QS = "name =% E7% 88% AC% E8% 99% AB% E5% 9F% BA% E7% A1% 80 y el saludo = Hola + Mundial y edad = 100" Imprimir ( analizar. A veces, para obtener una URL, querido para los diversos componentes de la URL en la división, así que esta vez se puede usar `o` urlparse` urlsplit` dividir. Código de la muestra es la siguiente: `` `Python desde el urllib solicitud de importación, el análisis sintáctico URL = 'http://www.baidu.com/s?username=python' Resultado = parse.urlsplit (URL) # Resultado = parse.urlparse (URL) Imprimir ( 'esquema:', result.scheme) Imprimir ( 'netloc:', result.netloc) Imprimir ( 'ruta:', result.path) Imprimir ( 'Pregunta:', result.query) `` ` ` urlparse` y `urlsplit` sustancialmente idénticos. El único lugar que no es lo mismo, `urlparse` más en el interior a` propiedad params`, y` urlsplit` NO TIENEN this` propiedad params`. Por ejemplo, hay un `url`:` url = 'http: //www.baidu.com/s ; hola wd = pitón y nombre de usuario = abc # 1'` ,? Se puede conseguir `urlparse` to` hello`, y` urlsplit `no se puede llegar. `Url` in` params` también con menos.