pitón rastreador de urllib url de codificación de proceso Comentarios

En este artículo se describe el reptil serpiente pitón de url urllib codificar proceso Hola, código de muestra de papel se describe en gran detalle, tiene un cierto valor de referencia de aprendizaje para todos nosotros para aprender o trabajo, un amigo en necesidad puede hacer referencia a los siguientes
casos: Arrastre el uso de perros de búsqueda de acuerdo a especifica la entrada de datos de la página buscado (por ejemplo, el rastreo de entrada para los datos de página 'Jay')

import urllib.request
# 1.指定url
url = 'https://www.sogou.com/web?query=周杰伦'
'''
2.发起请求:使用urlopen函数对指定的url发起请求,
该函数返回一个响应对象,urlopen代表打开url
'''
response = urllib.request.urlopen(url=url)
# 3.获取响应对象中的页面数据:read函数可以获取响应对象中存储的页面数据(byte类型的数据值)
page_text = response.read()
# 4.持久化存储:将爬取的页面数据写入文件进行保存
with open("sougou.html","wb") as f:
  f.write(page_text)
  print("写入数据成功")
  f.close()

errores de codificación

[Nota] código no ASCII codificados de datos de la presente URL, el URL no válida. : Si se inició la solicitud, se informa de un error de las siguientes UnicodeEncodeError: 'ascii' codec can't encode characters in position 15-17: ordinal not in range(128)
características de url: valores de los datos codificados url No existen datos de caracteres no ASCII codificados, URL debe ser ASCII. Así que después escribimos URL en el código de reptiles, si hay una codificación no ASCII del valor de los datos de la dirección URL, debe ser el código ASCII, la url antes de ser utilizados.

Lo anterior "Jay" no son codificados en ASCII datos de caracteres, por lo que no será válida url url, url no cumple con las características, la ha notificado el error

Debe ser datos ASCII ASCII no codificados en la URL, se inicia antes de la URL solicitada:
necesidad de utilizar urllib.parse

Método 1: Uso de función cita
funciones de efectos cita: caracteres URL especial presente en la codificación ASCII, los caracteres ASCII no codificada en URL sacados individualmente, la función cita transcodificación,

Después de transcodificación, el resultado de transcodificación de ellos empalme a la URL original.

import urllib.request
import urllib.parse
# 1.指定url
url = 'https://www.sogou.com/web?query=周杰伦'
word = urllib.parse.quote("周杰伦")
# 查看转码后结果
print(word)
# %E5%91%A8%E6%9D%B0%E4%BC%A6
from urllib.request import urlopen
import urllib.parse
# 1.指定url
url = 'https://www.sogou.com/web?query='
# url的特性:url不可以存在非ASCII编码字符数据
word = urllib.parse.quote("周杰伦")
# 将编码后的数据值拼接回url中
url = url+word # 有效url
'''
2.发起请求:使用urlopen函数对指定的url发起请求,
该函数返回一个响应对象,urlopen代表打开url
'''
response = urlopen(url=url)
# 3.获取响应对象中的页面数据:read函数可以获取响应对象中存储的页面数据(byte类型的数据值)
page_text = response.read()
# 4.持久化存储:将爬取的页面数据写入文件进行保存
with open("周杰伦.html","wb") as f:
  f.write(page_text)
print("写入数据成功")

Por último, recomiendo una reunión pitón buena reputación [ Haga clic para entrar ], hay una gran cantidad de veteranos habilidades de aprendizaje, la experiencia de aprendizaje

, Habilidades de la entrevista, experiencia de trabajo y otra acción, prepararon el mayor cuidado la información introductoria de base cero, información sobre proyectos reales, los programadores de todos los días

Python método para explicar la sincronización de la tecnología, para compartir algunas de las letras y la necesidad de prestar atención a los pequeños detalles

Publicado 32 artículos originales · ganado elogios 34 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/haoxun12/article/details/105081772
Recomendado
Clasificación