where I can talk.

V2EX Daily Mission

· Read in about 1 min · (93 Words)
Python

分析

登陆

访问 www.v2ex.com/signin, F12,

可以看到,

Imgur

登录后查看 POST 请求,

Imgur

因此,构造 form-data 后模拟 POST 方式提交,即可登陆。

import requests

params = {
    '2f28bda3xxx': 'username',
    'e3575b2bxxx': 'password',
    'ec5d67ebxxx': 'captcha',
    once: 'captcha url id',
    next: /
}
def log_in(params):
    # params 即为 form-data
    log_in = requests.session.post('https://www.v2ex.com/signin', data=params)
    # 通过查看 post 返回页面中是否有特定字符来判断登陆是否成功
    if log_in.text.find('登出') != -1:
        print('Success login')

登录后,可以通过 requests.session 来保存登陆状态。

签到

访问 www.v2ex.com/mission/daily, F12,

因此,首先对 /mission/daily Get 请求,判断下是否已经领取过每日奖励。

Imgur

如果还没有领取过,那么对图中 /mission/daily/redeem?once=xxxxx Get 请求。

如果已经领取过了,或者领取成功。

Imgur

def get_reward():
    daily_mission = requests.session.get('https://www.v2ex.com/mission/daily')
    if daily_mission.text.find('') != -1:
        get_reward = requests.session.get('https://www.v2ex.com/mission/daily/redeem?once=xxxxx')
        if get_reward.text.find('') != -1:
            print('Success get reward.')
        else:
            pass
    else:
        pass

至此,既可以领取成功。

详细代码

Comments