您的位置:首页 > 理论基础 > 计算机网络

实战:模拟登录美食杰网站(http.cookiejar模块:用CookieJar来提供用于存储cookie的对象)

2020-03-08 14:26 1156 查看

CookieJar:

管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失。

FileCookieJar (filename,delayload=None,policy=None):

从CookieJar派生而来,用来创建FileCookieJar实例,检索cookie信息并将cookie存储到文件中。filename是存储cookie的文件名。delayload为True时支持延迟访问访问文件,即只有在需要时才读取文件或在文件中存储数据。

MozillaCookieJar

(filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与Mozilla浏览器 cookies.txt兼容的FileCookieJar实例。

LWPCookieJar

(filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与libwww-perl标准的 Set-Cookie3 文件格式兼容的FileCookieJar实例。

实战:模拟登录美食杰网站

from urllib import request
from urllib import parse
from http.cookiejar import CookieJar

headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"}
#使用cookiejar创建一个HTTPCookieProcessor对象
cookiejar = CookieJar()
handler = request.HTTPCookieProcessor(cookiejar)
#创建一个opener
opener = request.build_opener(handler)

#将账号、密码写入Post_data中,再使用opener发送一个登录请求
post_url = "https://i.meishi.cc/login.php"
post_data = parse.urlencode({
"username":"你的账号",
"password":"你的密码"
})
req = request.Request(post_url,data=post_data.encode('utf-8'))
opener.open(req)

#url为手动通过浏览器登录后的个人主页
#读取网页后查看是否有个人信息,并和手动用浏览器登录的个人主要进行对比,以便确认模拟登录是否成功
url = "………………………………"
rq = request.Request(url,headers=headers)
resp = opener.open(rq)
print(resp.read().decode('utf-8'))
  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
leedeancsdn 发布了18 篇原创文章 · 获赞 14 · 访问量 527 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: