Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件 人人网
Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件(人人网)
- 上一篇介绍了利用CookieJar访问人人网,本篇将使用filecookiejar将cookie以文件形式保存
- 自动使用cookie登录,使用步骤:
- 1.打开登录页面后,通过用户名密码登录
- 2.自动提取反馈回来的cookie
- 3.利用提取的cookie登录个人信息页面
- 创建cookiejar实例
- 生成cookie的管理器
- 创建http请求管理器
- 创建https请求的管理器
- 创建请求管理器
- 通过输入用户名和密码,获取cookie
- 代码:
# 创建cookiejar的实例cookie = cookiejar.CookieJar()# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
创建handle后,使用opener打开,打开后相应的业务由相应的handle处理
cookie作为一个变量打印出来
# 使用cookiejar# cookie作为一个变量打印出来from urllib import request,parsefrom http import cookiejar# 创建cookiejar的实例cookie = cookiejar.CookieJar()# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)def login(): # 负责首次登录,输入用户名和密码,用来获取cookie url = 'http://www.renren.com/PLogin.do' id = input('请输入用户名:') pw = input('请输入密码:') data = { # 参数使用正确的用户名密码 "email": id, "password": pw } # 把数据进行编码 data = parse.urlencode(data) # 创建一个请求对象 req = request.Request(url,data=data.encode('utf-8')) # 使用opener发起请求 rsp = opener.open(req)# 以上代码就可以进一步获取cookie了,cookie在哪呢?cookie在opener里def getHomePage(): # 地址是用在浏览器登录后的个人信息页地址 url = "http://www.renren.com/967487029/profile" # 如果已经执行login函数,则opener自动已经包含cookie rsp = opener.open(url) html = rsp.read().decode() with open("rsp1.html", "w", encoding="utf-8")as f: # 将爬取的页面 print(html) f.write(html)if __name__ == '__main__': login() # 执行完login之后,会得到授权之后的cookie,下一步打印出来 print(cookie) for item in cookie: print(type(item)) print(item) for i in dir(item): print(i)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
我们使用print(i)打印出来了cookie的所有属性
下面介绍常用的属性
cookie的属性
- name:名称
- value:值
- domain:可以访问此cookie的域名
- path:可以访问此cookie的页面路径
- expires:过期时间
- size:大小
- http:字段
cookie的值虽然可以自己修改,但是修改后就会导致和服务器端数据不一致,而使cookie无效,最终登录失败
cookie的保存-FileCookieJar
- 将cookie以文件形式保存
- 案例v15filecookiejar文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py15filecookiejar.py
# 使用filecookiejarfrom urllib import request,parsefrom http import cookiejar# 创建cookiejar的实例filename = "py15renrenCookie.txt"cookie = cookiejar.MozillaCookieJar(filename)# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)def login(): # 负责首次登录,输入用户名和密码,用来获取cookie url = 'http://www.renren.com/PLogin.do' id = input('请输入用户名:') pw = input('请输入密码:') data = { # 参数使用正确的用户名密码 "email": id, "password": pw } # 把数据进行编码 data = parse.urlencode(data) # 创建一个请求对象 req = request.Request(url,data=data.encode('utf-8')) # 使用opener发起请求 rsp = opener.open(req) ''' 保存cookie到文件 两个参数: ignore_discard:表示及时cookie将要被丢弃,是否保存下来 ignore_expires:表示如果该文件中cookie已经过期,是否保存下来 ''' cookie.save(ignore_discard=True, ignore_expires=True)if __name__ == '__main__': login()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
运行结果
本篇使用filecookiejar将cookie以文件形式保存
更多文章链接:Python 爬虫随笔
- 本笔记不允许任何个人和组织转载
Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件(人人网)
- 上一篇介绍了利用CookieJar访问人人网,本篇将使用filecookiejar将cookie以文件形式保存
- 自动使用cookie登录,使用步骤:
- 1.打开登录页面后,通过用户名密码登录
- 2.自动提取反馈回来的cookie
- 3.利用提取的cookie登录个人信息页面
- 创建cookiejar实例
- 生成cookie的管理器
- 创建http请求管理器
- 创建https请求的管理器
- 创建请求管理器
- 通过输入用户名和密码,获取cookie
- 代码:
# 创建cookiejar的实例cookie = cookiejar.CookieJar()# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
创建handle后,使用opener打开,打开后相应的业务由相应的handle处理
cookie作为一个变量打印出来
# 使用cookiejar# cookie作为一个变量打印出来from urllib import request,parsefrom http import cookiejar# 创建cookiejar的实例cookie = cookiejar.CookieJar()# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)def login(): # 负责首次登录,输入用户名和密码,用来获取cookie url = 'http://www.renren.com/PLogin.do' id = input('请输入用户名:') pw = input('请输入密码:') data = { # 参数使用正确的用户名密码 "email": id, "password": pw } # 把数据进行编码 data = parse.urlencode(data) # 创建一个请求对象 req = request.Request(url,data=data.encode('utf-8')) # 使用opener发起请求 rsp = opener.open(req)# 以上代码就可以进一步获取cookie了,cookie在哪呢?cookie在opener里def getHomePage(): # 地址是用在浏览器登录后的个人信息页地址 url = "http://www.renren.com/967487029/profile" # 如果已经执行login函数,则opener自动已经包含cookie rsp = opener.open(url) html = rsp.read().decode() with open("rsp1.html", "w", encoding="utf-8")as f: # 将爬取的页面 print(html) f.write(html)if __name__ == '__main__': login() # 执行完login之后,会得到授权之后的cookie,下一步打印出来 print(cookie) for item in cookie: print(type(item)) print(item) for i in dir(item): print(i)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
我们使用print(i)打印出来了cookie的所有属性
下面介绍常用的属性
cookie的属性
- name:名称
- value:值
- domain:可以访问此cookie的域名
- path:可以访问此cookie的页面路径
- expires:过期时间
- size:大小
- http:字段
cookie的值虽然可以自己修改,但是修改后就会导致和服务器端数据不一致,而使cookie无效,最终登录失败
cookie的保存-FileCookieJar
- 将cookie以文件形式保存
- 案例v15filecookiejar文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py15filecookiejar.py
# 使用filecookiejarfrom urllib import request,parsefrom http import cookiejar# 创建cookiejar的实例filename = "py15renrenCookie.txt"cookie = cookiejar.MozillaCookieJar(filename)# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)def login(): # 负责首次登录,输入用户名和密码,用来获取cookie url = 'http://www.renren.com/PLogin.do' id = input('请输入用户名:') pw = input('请输入密码:') data = { # 参数使用正确的用户名密码 "email": id, "password": pw } # 把数据进行编码 data = parse.urlencode(data) # 创建一个请求对象 req = request.Request(url,data=data.encode('utf-8')) # 使用opener发起请求 rsp = opener.open(req) ''' 保存cookie到文件 两个参数: ignore_discard:表示及时cookie将要被丢弃,是否保存下来 ignore_expires:表示如果该文件中cookie已经过期,是否保存下来 ''' cookie.save(ignore_discard=True, ignore_expires=True)if __name__ == '__main__': login()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
运行结果
本篇使用filecookiejar将cookie以文件形式保存
更多文章链接:Python 爬虫随笔
- 本笔记不允许任何个人和组织转载