首页 > 编程知识 正文

网络爬虫cookie,在线获取网页cookie

时间:2023-05-04 21:56:52 阅读:223245 作者:1058

爬虫:利用cookie获取人人网登录后网页信息

思路:

1、首先创建一个自动获取登录cookie的实例,创建请求管理器opener

2、分析网页源码,获取登录的form信息,并写入data,访问登录界面url,获取cookie信息

3、分析登录后页面url,利用得到的cookie信息获取网页

一、创建cookie实例及请求管理器opener from urllib import request, parsefrom http import cookiejar # 创建一个cookie实例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)  二、分析源码,模拟登陆获取cookie

打开网页源码,利用查找功能,找到form所在位置,可以看到我们所需要的键值和要上传的信息的url

def login(): url = 'http://www.renren.com/PLogin.do' ''' 登录人人网 :return: ''' data = { 'email': 'xxxxxxxx', # 个人邮箱或手机号 'password': 'xxxxxx' # 个人密码 } # 对数据进行编码 data = parse.urlencode(data).encode() req = request.Request(url, data=data) rsp = opener.open(req) 三、利用cookie获取登录后的网页信息

 

def getHome(): url = 'http://www.renren.com/xxxxxx/profile' # 登录后个人的主页网址 rsp = opener.open(url) html = rsp.read().decode('utf-8') print(html)

运行代码,将输出结果放入rsp.html文件里,然后用浏览器打开,就可以看到,人人网的个人主页一闪而过,网页会阻止重定向。 

if __name__ == '__main__': login() getHome()

完整代码:  from urllib import request, parsefrom http import cookiejar# 创建一个cookie实例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(): url = 'http://www.renren.com/PLogin.do' ''' 登录人人网 :return: ''' data = { 'email': 'xxxxxxxx', # 个人邮箱或手机号 'password': 'xxxxxx' # 个人密码 } # 对数据进行编码 data = parse.urlencode(data).encode() req = request.Request(url, data=data) rsp = opener.open(req)def getHome(): url = 'http://www.renren.com/xxxxxx/profile' # 登录后个人的主页网址 rsp = opener.open(url) html = rsp.read().decode('utf-8') print(html)if __name__ == '__main__': login() getHome()

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。