[Rastreador web de Python] 150 conferencias para obtener fácilmente las notas del curso pagado del rastreador web de Python 5-Carga y guardado de cookies

1. Guardar

Presente una nueva clase:

MozillaCookieJar ()

 MozillaCookieJar se deriva de FileCookieJar, puede crear una instancia de FileCookieJar compatible con el cookietxt del navegador Mozilla.

from urllib import request
from http.cookiejar import MozillaCookieJar

#保存
# cookiejar = MozillaCookieJar('cookie.txt')
# handler = request.HTTPCookieProcessor(cookiejar)
# opener = request.build_opener(handler)
# resp = opener.open('http://www.httpbin.org/cookies/set/course/abc')
#
# cookiejar.save()

Podemos crear un cookiejar a través de esta clase MozillaCookieJar (), luego crear el manejador y el abridor a su vez, escribimos la url de solicitud del sitio web que necesitamos abrir, y finalmente guardamos la cookie obtenida.

Sin embargo, descubrimos que el archivo guardado no contenía la información de cookies que queríamos.

La función save (), donde puede agregar el nombre del archivo guardado, o puede escribirse cuando se crea MozillaCookieJar ().

Mirando el código fuente de esta función de guardado, encontramos:

Los parámetros ignore_discard e ignore_expires de esta función de guardado son falsos por defecto.

ignore_discard = false significa que si la cookie se descarta, no se guardará.

ignore_expires = false significa que la cookie no se guardará cuando caduque.

Por lo tanto, cuando necesitemos guardar la información de la cookie de un sitio web de inicio de sesión, será mejor que cambiemos estos dos valores ignorados a verdadero, de modo que incluso si la cookie se descarta y expira, la información de la cookie que necesitamos aún se pueda guardar. Esa es la siguiente línea de código:

cookiejar.save(ignore_discard=True,ignore_expires=True)

Preste atención al uso de dos parámetros

ignore_discard = true significa que las cookies deben guardarse incluso si están a punto de descartarse

ignore_expires = true significa que si las cookies han caducado, se guardarán y los archivos se sobrescribirán si existen.

 

2. Carga

La carga de la información de una cookie es leer el contenido cargado, usando load (), y otras partes son similares a guardar.

#加载

cookiejar = MozillaCookieJar('cookie.txt')
cookiejar.load()
handler = request.HTTPCookieProcessor(cookiejar)
opener = request.build_opener(handler)
resp = opener.open('http://www.httpbin.org/cookies/set/course/abc')
for cookie in cookiejar:
    print(cookie)

 

Supongo que te gusta

Origin blog.csdn.net/weixin_44566432/article/details/108559759
Recomendado
Clasificación