Python_保存cookie信息

cookie信息:cookie某些网站为了辨别用户身份, 只有登陆某个页面才可以访问;
登陆信息保存方式:进行一个会话跟踪(session),将用户的相关信息保存到本地的浏览器中;

1.获取cookie信息保存到变量中

from urllib import request
from urllib.parse import urlencode
from urllib.request import HTTPCookieProcessor
from  http import cookiejar

# 1.声明一个类,将cookie信息保存到变量中
cookie = cookiejar.CookieJar()

# 2.通过urllib.request的HTTPCookieProcessor创建cookie请求器
handler = HTTPCookieProcessor(cookie)

# 3.通过处理器创建opener ==== urlopen
opener = request.build_opener(handler)

# 4.打开url页面
response = opener.open('http://www.baidu.com')
for item in cookie:
    print('Name=' + item.name,end='\t\t')
    print('Value=' + item.value)

运行结果:
在这里插入图片描述
2.获取cookie信息保存到本地文件中

from urllib import request
from urllib.parse import urlencode
from urllib.request import HTTPCookieProcessor
from  http import cookiejar

# 1.指定cookie文件存储的位置
cookieFileName = 'doc/cookie.txt'

# 2.声明对象MozillaCookieJar,用来保存cookie到文件中
cookie = cookiejar.MozillaCookieJar(filename=cookieFileName)

# 3.通过urllib.request的HTTPCookieProcessor创建cookie请求器
handler = HTTPCookieProcessor(cookie)

# 4.通过处理器创建opener ==== urlopen
opener = request.build_opener(handler)

response = opener.open('http://www.baidu.com')
print(response.read().decode('utf-8'))
cookie.save(cookieFileName)

写入文件 cookie.txt 中:
在这里插入图片描述

3.从文件中获取cookie信息并访问

# 1.模拟登录,并保存cookie信息
cookieFileName = 'doc/cookie02.txt'
cookie = cookiejar.MozillaCookieJar(filename=cookieFileName)
handler = HTTPCookieProcessor(cookie)
opener = request.build_opener(handler)
# loginUrl:你想要访问的url
loginUrl = 'http://xxxxxx'
# 用户名和密码的key值需要分析页面内容抓包得到
postData = urlencode({
    'stuid':'xxxxxx',
    'pwd':'xxxxxx'
})
response = opener.open(loginUrl,data=postData)
cookie.save(cookieFileName)


# 2.根据保存的cookie信息获取其他网页的内容
# gradeUrl:其他网页的url
gradeUrl = 'http://www.zfjw.xupt.edu.cn/jwglxt/cjcx/cjcx_cxDgXscj.html?gnmkdm=N305005&layout=default&su=03163061'
grade_response = opener.open(gradeUrl)
print(response.read())

案例_chinaunix登录:
代码:

from http import cookiejar
from urllib import request
from urllib.parse import urlencode
from urllib.request import HTTPCookieProcessor
cookieFileName = 'doc/chinaUnixCookie.txt'
cookie = cookiejar.MozillaCookieJar(filename=cookieFileName)
handler = HTTPCookieProcessor(cookie)
opener = request.build_opener(handler)
# 这里的url是chinaunix登陆的url
loginUrl = 'http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=La2A2'

# 这里的用户名和密码写你自己的,鉴于保密用xxxxxx代替
postData = urlencode({
    'username': 'xxxxxx',
    'password': 'xxxxxx'
}).encode('utf-8')


response = opener.open(loginUrl, data=postData)
with open('doc/chinaunix.html', 'wb') as f:
    f.write(response.read())
# cookie.save(cookieFileName)

首先将cookie信息保存到chinaUnixCookie.txt文件中;
然后从文件中获取cookie信息并访问chinaunix;
将获取的页面写入文件chinaunix.html, 用于检测是否爬取成功;
将 chinaunix.html 文件用浏览器打开检测是否登录成功。

猜你喜欢

转载自blog.csdn.net/King15229085063/article/details/87649083
今日推荐