码迷,mamicode.com
首页 > 其他好文 > 详细

自动登陆抽屉并点赞

时间:2018-06-22 22:46:26      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:chrome   alt   x64   print   win64   返回   inf   apple   http   

 

我们先登陆抽屉账号

技术分享图片

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

 技术分享图片

再往下翻,并没有看到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)

输出结果如下:

技术分享图片

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

 

自动登陆抽屉并点赞

标签:chrome   alt   x64   print   win64   返回   inf   apple   http   

原文地址:https://www.cnblogs.com/Black-rainbow/p/9215616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!