zoukankan      html  css  js  c++  java
  • python 携带cookie获取页面内容

    有时会遇到爬取的页面需要登录,这就要带上cookie了。

    下面记录了几种携带cookie的方法

    # coding=utf-8
    import requests
    
    s = requests.Session()
    login_data = {'username': 'teacher', 'password': 'teacher'}
    # 方法1
    # resp1 = s.post('http://192.168.2.132/login/', data=login_data)
    # r = s.get('http://192.168.2.132/personal_live/')
    
    # 方法2
    # resp1 = requests.post('http://192.168.2.132/login/', data=login_data)
    # print('cookie:' + str(resp1.cookies))
    # r = requests.get('http://192.168.2.132/personal_live/', cookies=resp1.cookies)
    
    # 方法3
    # c = {'sessionid': '3ps7ouyox1l43alcb7rafxg9dtfnurcb'}
    # r = requests.get('http://192.168.2.132/personal_live/', cookies=c)
    
    c = {
        '.CNBlogsCookie': 'D020D...07',
        '.Cnblogs.AspNetCore.Cookies': 'CfDJ...WA',
        'SyntaxHighlighter': 'java',
        'SERVERID': '560...34'
    
    }
    r = requests.get('https://i.cnblogs.com/EditPosts.aspx?opt=1', cookies=c)
    
    resp = r.text
    print(resp)
    

    方法1是利用同一个Session,先登录,再访问有限制页面。

    方法2是直接使用requests,和1一样,同样是先登录,获取cookie,携带cookie访问限制页面。

    方法3是手动从浏览器获取cookie,再携带cookie访问限制页面。

    优缺点:

    1,2差不多,都是直接运行脚本就可以了,但是需要登录页面没有验证码一类的处理。

    3可以应对各种网站,但是需要手动获取cookie。

  • 相关阅读:
    用jQuery的offset()替代javascript的offset
    java实现SAP BO登录
    原生js实现模块来回拖拽效果
    HTML中marquee标签的使用
    axure 预览"HTTP/1.1 302 Found"
    redis命令详解
    idea找不到package下的mapper.xml文件
    confluence搭建详情
    httpClient解决post请求重定向的问题
    java double相加
  • 原文地址:https://www.cnblogs.com/lanqie/p/8392696.html
Copyright © 2011-2022 走看看