zoukankan      html  css  js  c++  java
  • 爬虫(cookie)——renren模拟登陆

    工具:python3

    步骤:

    1)使用cookiejar.CookieJar()构建一个CookieJar()构建一个对象,用来保存cookie的值

    2)使用HTTPCookieProcessor()构建一个处理器对象,用来处理cookie

    3)使用build_opener构建自定义opener

    4))使用opener的addheaders参数添加请求头参数

    5)构造url和data

    6)使用Request()构造请求

    7)使用opener.open()发送请求

    8)读取响应信息

    import urllib.request
    from http import cookiejar
    
    # 通过CookieJar()类构建一个cookieJar()对象,用来保存cookie的值
    cookie = cookiejar.CookieJar()
    
    # 通过HTTPCookieProcessor()处理器类构建一个处理器对象,用来处理cookie
    cookie_handler = urllib.request.HTTPCookieProcessor(cookie)
    
    # 构建一个自定义的opener
    opener = urllib.request.build_opener(cookie_handler)
    
    # 通过opener的addheaders参数可以添加HTTP报头参数,参数为元组类型
    opener.addheaders = [("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36")]
    
    # renren网的登录接口
    url = "http://www.renren.com/PLogin.do"
    
    # 需要登陆的账户密码
    data = {"email":"xxx", "password": "xxx"}
    
    data = urllib.parse.urlencode(data)
    # data = bytes(data,  encoding="utf8")
    
    # 第一次是post请求,发送登陆需要的参数,获取cookie
    request = urllib.request.Request(url, data=data)
    
    # 发送第一次的post请求,生成登录后的cookie
    response = opener.open(request)
    response = response.read()
    response = response.decode("utf-8")
    
    with open("renren.html","w") as f:
        f.write(str(response))
  • 相关阅读:
    WHYZOJ-#53 线段树区间修改(线段树)
    洛谷-3373 【模板】线段树 2 (线段树)
    暑假训练-藏妹子之处(递推)
    POJ-1258 Agri-Net(kruskal最小生成树)
    POJ-2559 Largest Rectangle in a Histogram(单调栈)
    BZOJ3439 Kpm的MC密码
    BZOJ3438 小M的作物
    BZOJ3436 小K的农场
    BZOJ3437 小P的牧场
    BZOJ1430 小猴打架
  • 原文地址:https://www.cnblogs.com/gaoquanquan/p/9111264.html
Copyright © 2011-2022 走看看