cookie用法--抽屉网的自动登录(cookie是通过代码自动获取的)

本文介绍了如何利用代码自动获取Cookie实现抽屉网的自动登录,详细讲解了设置Cookie的过程,并提供了两种获取User-Agent的方式:自定义函数与系统自带方法。同时,给出了完整的实现代码和运行结果。
摘要由CSDN通过智能技术生成
 1.引用自己定义一个类
from random_agent import RandomAgent
2. 引用系统的包
from fake_useragent import UserAgent
3.创建对象
agent = UserAgent()
4. 不要重复 造轮子
 pip search 工具包名字   例如:pip search UserAgent"
 pip install fake_useragent
5. cookie
   注意: cookie 是对方的服务器设置的
    1.如果网站登录的时候需要写验证码,可以考虑通过cookie直接登录
        例如:知乎网
        注意: cookie需要手动登录以后再粘贴
    2.如果网站登录的时候不需要验证码,可以考虑通过代码自动登录
        例如:抽屉网
        注意: 它的cookie是通过代码自动获取的
 6. 抽屉网的登录逻辑(其他网站不适用)
    1.先获取首页返回的cookie,因为它是用户的凭证
    2.开始登录(要携带上第一步的cookie)
    3.开始点赞/评论
 
 
7.注意: 通过 浏览器获取的操作一般都是 get请求
response = requests.get(
    url,
    headers={
        # 对应from random_agent import RandomAgent
        "User-Agent": RandomAgent.rand()
        # "User-Agent": agent.random
    }

)

字典headers的关键字User-Agent有两种方式获得

   1.自己写一个关于获取useragent的函数   "User-Agent": RandomAgent.rand()

   2.用系统自带的  "User-Agent": agent.random

8.cookie值得设置:

   1.第一次访问首页的时候 服务器 返回一个cookie
   2.携带1的cookie进行登录,服务器返回另一个cookie
9.python27和python36 的区别:
    # python2.7
    f = open("1.txt", "w")
    import codecs
    f = codecs.open("1.txt", "w", encoding="utf-8")
    # python3,6
    f = open("1.txt", "w", encoding="utf-8")
 
   10. 面试题
    网络七层从下往上的协议有哪些?
    物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
   11.类的相关知识
      OO:面向对象
      OOP:面向对象编程
     OOA:面向对象分析
      OOD:面向对象设计
 
    OO的特点:封装 继承 多态
    多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。允许将子类类型的指针赋值给父类类型的指针
    继承的特点:
    1.子类拥有父类的所有属性和方法
    2.子类拥有自己的属性和方法
    3.子类可以重写父类的方法
    例如:
        张无忌-张翠山
        1.张无忌 拥有 张翠山的财产/剑/衣服(属性)....武当剑法(方法)
        2.张无忌 自己 买房子,学习了乾坤大挪移
        3.张无忌 改进了  武当剑法
 

12.完整代码:

# -*- coding:utf-8 -*-
import requests
# 引用自己定义一个类
from random_agent import RandomAgent
# 引用系统的包
from fake_useragent import UserAgent
# 创建对象
agent = UserAgent()
for i in range(100):
    print(agent.random)

# 不要重复造轮子
# pip search 工具包名字   例如:pip search UserAgent"
# pip install fake_useragent


url = "http://dig.chouti.com"
# 通过浏览器获取的操作一般都是get请求
response = requests.get(
    url,
    headers={
        # 对应from random_agent import RandomAgent
        "User-Agent": RandomAgent.rand()
        # "User-Agent": agent.random
    }
)
cookies = response.cookies.get_dict()


url = "http://dig.chouti.com/login"
response = requests.post(
    url,
    data={"phone": "8615896901897", "password": "qweqweqwe1", "oneMonth": "1"},
    headers={"User-Agent": agent.random},
    cookies=cookies
)

# print(response.text)
cookies1 = response.cookies.get_dict()
print(cookies)
print(cookies1)

# 查看--点赞-- 之后的请求结果
url = "http://dig.chouti.com/link/vote?linksId=17723556"
response = requests.post(
    url,
    headers={"User-Agent": agent.random},
    cookies=cookies
)
print(response.text)

# 1.第一次访问首页的时候 服务器 返回一个cookie
# 2.携带1的cookie进行登录,服务器返回另一个cookie
'''
    # python2.7
    f = open("1.txt", "w")
    import codecs
    f = codecs.open("1.txt", "w", encoding="utf-8")
    # python3,6
    f = open("1.txt", "w", encoding="utf-8")
'''


13.自己创建的获取useragent代码:

# -*- coding:utf-8 -*-
# 自己封装一个用于获取User-Agent的类
import random
# OO:面向对象
# OOP:面向对象编程
# OOA:面向对象分析
# OOD:面向对象设计
'''
    OO的特点:封装 继承 多态
    多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。允许将子类类型的指针赋值给父类类型的指针
    继承的特点:
    1.子类拥有父类的所有属性和方法
    2.子类拥有自己的属性和方法
    3.子类可以重写父类的方法
    例如:
        张无忌-张翠山
        1.张无忌 拥有 张翠山的财产/剑/衣服(属性)....武当剑法(方法)
        2.张无忌 自己 买房子,学习了乾坤大挪移
        3.张无忌 改进了  武当剑法
'''


class RandomAgent(object):
    agent_list = [
        "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
        "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
        "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"
    ]

    @classmethod
    def rand(cls):
        # cls.agent_list类属性
        # self.agent_list对象属性
        # 从列表中随机选择一个元素
        return random.choice(cls.agent_list)


if __name__ == '__main__':
    print(RandomAgent.rand())

14.运行结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值