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

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

思路:

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

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

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

一、创建cookie实例及请求管理器opener

from urllib import request, parse
from 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, parse
from 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()

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值