这是我参与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文件,文件的内容如图
我们仅仅是,将cookieJar换成了MozillaCookieJar,它会在=生成文件时用到,是CookieJar的子类,可以用它来处理跟Cookie和文件相关的事件,比如读取和保存cookie,可以将Cookie保存成Mozilla型的浏览器的Cookie形式 除此之外,LWPCookieJar同样也可以读取和保存cookie,只是文件的保存形式不一样,它会保存成,LWP(libwww-perl)格式
我们可以在声明处修改,cookie = http.cookiejar.LWPCookieJar(filename)
这样来看不同的形式的cookie 差异还是挺大的 下一篇文章会学一下怎么样使用Cookie
新年快乐,铁子们 一切顺利,终于可以放下工作了