下班了,学一点Python爬虫吧 第5天基本库的使用(urllib cookie)

217 阅读2分钟

这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战

距离我的可爱的春节假期只有一天了,祝大家新年快乐 我发现urllib 这个库不太好用,很笨,很麻烦很繁琐这种写法 但还是学完吧

cookie处理

处理cookie 需要相关的Handler类 让我们来看看用代码怎么获取cookie

import urllib.request,http.cookiejar
import ssl


ssl._create_default_https_context = ssl._create_unverified_context



cookie = http.cookiejar.CookieJar()
handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)

response = opener.open("https://www.baidu.com")
for item in cookie:
    print(item.name + "=" + item.value)

首先声明一个 CookieJar对象,然后利用HTTPCookieProcessor构建Handler,最后利用build_opener方法构建opener,执行open方法

运行结果如下

BAIDUID=60F8DCD57F0274937CE247D07306D447:FG=1
BIDUPSID=60F8DCD57F0274935918D566E299FD53
PSTM=1643539043

可以看到分别输出了,cookie的key value 我们能够输出了,那么可不可以输出文件格式的内容呢,我们知道,Cookie实际上也是以文本形式保存的,我们可以通过以下实例来实现

import urllib.request,http.cookiejar
import ssl


ssl._create_default_https_context = ssl._create_unverified_context




filename = "cookie.txt"

cookie = http.cookiejar.MozillaCookieJar(filename)

handler = urllib.request.HTTPCookieProcessor(cookie)

opener = urllib.request.build_opener(handler)

response = opener.open("https://www.baidu.com")
cookie.save(ignore_discard=True,ignore_expires=True)

我们可以看到在当前文件路径下,会生成一个cookie.txt文件,文件的内容如图

截屏2022-01-30 下午6.53.37.png

我们仅仅是,将cookieJar换成了MozillaCookieJar,它会在=生成文件时用到,是CookieJar的子类,可以用它来处理跟Cookie和文件相关的事件,比如读取和保存cookie,可以将Cookie保存成Mozilla型的浏览器的Cookie形式 除此之外,LWPCookieJar同样也可以读取和保存cookie,只是文件的保存形式不一样,它会保存成,LWP(libwww-perl)格式

我们可以在声明处修改,cookie = http.cookiejar.LWPCookieJar(filename)

截屏2022-01-30 下午7.03.38.png

这样来看不同的形式的cookie 差异还是挺大的 下一篇文章会学一下怎么样使用Cookie

新年快乐,铁子们 一切顺利,终于可以放下工作了