自动登陆抽屉并点赞

Posted black-rainbow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动登陆抽屉并点赞相关的知识,希望对你有一定的参考价值。

 

我们先登陆抽屉账号

技术分享图片

然后打开控制台,仔细观察变化,通常只需要观察最底部的变化

 技术分享图片

再往下翻,并没有看到from-data传值,我们这时点赞,并查看Response

技术分享图片

根据思路我写了一段代码

import requests

# 注意:防爬虫策略
response = requests.post(
    url=https://dig.chouti.com/login,
    data={
        phone: 8615921302790,
        password: a12!,
        oneMonth: 1
    },
    headers={
        user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/67.0.3396.87 Safari/537.36
    }
)
# print(response.text)
# 点赞
r1 = requests.post(
    url=https://dig.chouti.com/link/vote?linksId=20386976,
    headers={
        user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
    }
)
print(r1.text)

print之后发现给的是首页页面,并不是我们想要的,这段代码上面登陆,下面点赞,根据web判断,浏览器向抽屉发了个请求,把用户名密码发过去了,并返回一个cookie放在浏览器上,下次浏览器再访问抽屉会带着这个cookie,抽屉才能判断你是登陆成功的用户,如果此时你没带cookie,自然就判断为未登录的用户从而返回到首页。所以登陆请求要获取cookie再次访问也要携带cookie,而这段代码恰恰差了这两步。

 第一步我们先获取cookie

import requests

# 注意:防爬虫策略
response_login = requests.post(
    url=https://dig.chouti.com/login,
    data={
        phone: 8615921302790,
        password: a123!,
        oneMonth: 1
    },
    headers={
        user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
    }
)
cookie_dict = response_login.cookies.get_dict()
print(cookie_dict)

print得到下面的字典:

技术分享图片

第二步我们再次访问点赞的时候把cookie带过去

r1 = requests.post(
    url=https://dig.chouti.com/link/vote?linksId=20386976,
    headers={
        user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
    },
    cookies = cookie_dict
)

结果发现还是不行,我们再来分析浏览器点赞

技术分享图片

请求头里带有cookie,我们把这个cookie拿来用,结果发现可以点赞,有可能是第一次的cookie没有被抽屉授权所致。代码重构如下:

import requests

# 先访问抽屉最热帮,获取cookie(未授权的)
r1 = requests.get(
    url=https://dig.chouti.com/,
    headers={
        user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
    }
)
r1_cookie_dict = r1.cookies.get_dict()

# 发送用户名和密码认证 + cookie(未授权)
# 注意:防爬虫策略
response_login = requests.post(
    url=https://dig.chouti.com/login,
    data={
        phone: 8615921302790,
        password: a123,  # 这里请输入自己正确的密码
        oneMonth: 1
    },
    headers={
        user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
    },
    cookies=r1_cookie_dict
)

# 点赞
r1 = requests.post(
    url=https://dig.chouti.com/link/vote?linksId=20386976,
    headers={
        user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
    },
    cookies=r1_cookie_dict
)
print(r1.text)

输出结果如下:

技术分享图片

另外如果想在网站上看到点赞的效果,请先登录账号。

 

以上是关于自动登陆抽屉并点赞的主要内容,如果未能解决你的问题,请参考以下文章

python入门-----爬取汽车之家新闻,---自动登录抽屉并点赞,

自动登录并点赞

爬虫学习---基础操作--抽屉新热榜自动点赞与豆瓣自动统一短评

抽屉之Tornado实战--装饰器实现用户登录状态验证

爬虫,基于request,bs4 的简单实例整合

在导航抽屉关闭之前加载片段