Python爬虫教程-13-爬虫使用cookie爬取登录后的页面 人人网 (下)

                       

Python爬虫教程-13-爬虫使用cookie爬取登录后的页面(下)

  • 自动使用cookie的方法,告别手动拷贝cookie
  • http模块包含一些关于cookie的模块,通过他们我们可以自动的使用cookie
    • CookieJar 
      • 管理存储Cookie,向传出的http请求添加cookie
      • 这里Cookie存储在内存中,CookieJar实例回收后cookie将消失
    • FileCookieJar(filename, delayload=None, policy=None)
      • 使用文件管理cookie
      • filename是保存cookie的文件
    • MozillaCookieJar(filename, delayload=None, policy=None)
      • 创建Mocilla浏览器cookie.txt兼容的FileCookieJar实例

        • 火狐Firefox浏览器需要单独处理
    • LwpCookieJar(filename, delayload=None, policy=None)
      • 创建于libww-per标准兼容的Set-Cookie3格式的FileCookieJar
    • 它们之间的关系: CookieJar–>FileCookieJar–>MozillaCookieJar & LwpCookieJar

利用CookieJar访问人人网

  • 自动使用cookie登录,使用步骤:
    • 1.打开登录页面后自动通过用户名密码登录
    • 2.自动提取反馈回来的cookie
    • 3.利用提取的cookie登录个人信息页面
      • 创建cookiejar实例
      • 生成cookie的管理器
      • 创建http请求管理器
      • 创建https请求的管理器
      • 创建请求管理器
      • 通过输入用户名和密码,获取cookie
  • 案例13cookiejar文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py13cookiejar.py
# 使用cookiejar完整代码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 = {        # 从input标签的name获取参数的key,value由输入获取        "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()    getHomePage()
   
   
  • 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

运行结果

看到自己的个人信息就是说明登录成功了
这里写图片描述

补充:在爬虫代码输入用户名和密码的使用方法

  • 1.打开网站首页,登录表单页面
  • 2.在输入用户名和密码的地方,【右键检查】,或者查看源代码
  • 3.找到登录表单【form标签的action属性】,拷贝地址
  • 4.提示:如果不能直接拷贝,【双击】地址,Ctrl+C
  • 操作截图:
    这里写图片描述
  • 5.找到用户名和密码的【input标签的name属性】,构建参数时使用
  • 6.然后在代码中,构建data参数,模拟post请求
# 代码片段url = 'http://www.renren.com/PLogin.do'    data = {        # 参数使用正确的用户名密码        "email": "18322295195",        "password": "oaix51607991"    }    # 把数据进行编码    data = parse.urlencode(data)
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

爬虫使用cookie,自动获取cookie解介绍到这里了

更多文章链接:Python 爬虫随笔


- 本笔记不允许任何个人和组织转载

           

猜你喜欢

转载自blog.csdn.net/qq_44906554/article/details/89338669