Python脚本实现虾米网签到功能

Python脚本实现虾米网签到功能

简介

虾米网是一款流行的音乐网站,用户可以在虾米网上听音乐、发现音乐、交流音乐。虾米网每日有签到功能,用户可以通过签到获取积分,积分可以用于兑换虾米网的一些礼品。

本文主要介绍使用Python脚本实现虾米网签到功能的方法,以及如何在脚本中模拟用户登录,实现自动签到。

实现步骤

1. 获取登录页面的cookie和code

在进行用户登录前需要获取登录页面的cookie和code,具体请求的url为https://passport.xiami.com/?_q=%7B%22from%22:%22https://www.xiami.com/%22,%22referer%22:%22http://www.xiami.com/%22%7D。该url会返回一个html页面,在该页面中有一段js代码,其中包含了名为lg_token的cookie和名为_xiamitoken的code值。获取这些值的方法为使用requests库向该url发送GET请求,代码示例如下:

import requests

url_1 = "https://passport.xiami.com/?_q=%7B%22from%22:%22https://www.xiami.com/%22,%22referer%22:%22http://www.xiami.com/%22%7D"

response_1 = requests.get(url_1)

cookie = response_1.cookies.get('lg_token')

code = response_1.text.split('value: "')[1].split('"')[0]

print(cookie, code)

运行上述代码,即可获取cookie和code值。

2. 模拟登录并获取签到所需token值

获取到cookie和code后,接下来需要模拟用户进行登录,并获取签到所需的token值。登录虾米网需要使用POST方法,同时需要在请求header中添加“x-requested-with”参数,其中的值为“XMLHttpRequest”以模拟ajax请求。登录虾米网后会返回一个名为"_m_h5_tk"的cookie值,该cookie值用于后续签到请求的token认证。获取该cookie值的方法为在请求header中添加“referer”参数,值为虾米网登录页面的url,还需在payload中添加用户名和密码,代码示例如下:

import requests
from hashlib import md5
import time

url_login = "https://passport.xiami.com/login"

username = "YOUR_USERNAME" # 虾米网的用户名
password = "YOUR_PASSWORD" # 虾米网的密码
payload = {"account": username, "password": md5(password.encode("utf8")).hexdigest(), "remember": "true",
           "_xiamitoken": code}

header_login = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) chrome/58.0.3029.110 Safari/537.36',
                'Host': 'passport.xiami.com', 'Referer': 'https://passport.xiami.com/login',
                'Origin': 'https://passport.xiami.com', 'x-requested-with': 'XMLHttpRequest'}

response_2 = requests.post(url_login, data=payload, headers=header_login)

cookie_m_h5_tk = response_2.cookies.get("_m_h5_tk").split("_")[0]

print(cookie_m_h5_tk)

运行上述代码,即可获取cookie_m_h5_tk值。

3. 签到

获取到cookie_m_h5_tk值后,就可以进行签到了。签到需要向https://www.xiami.com/task/signin/ajax?_q=%7B%22xf%22:%22pcweb%22,%22_rt%22:%22b%22%7D发送POST请求,其中需在请求header中添加"Referer"参数,值为"https://www.xiami.com/",还需添加cookie_m_h5_tk参数,代码示例如下:

import requests

url_sign = "https://www.xiami.com/task/signin/ajax?_q=%7B%22xf%22:%22pcweb%22,%22_rt%22:%22b%22%7D"

header_sign = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) chrome/58.0.3029.110 Safari/537.36',
                'Host': 'www.xiami.com', 'Referer': 'https://www.xiami.com/',
                'Origin': 'https://www.xiami.com', 'X-Requested-With': 'XMLHttpRequest',
                'cookie': '_m_h5_tk=' + cookie_m_h5_tk}

response_3 = requests.post(url_sign, headers=header_sign)

print(response_3.json())

运行上述代码即可完成签到并查看签到结果。

总结

本文介绍了使用Python脚本实现虾米网签到功能的方法,其中包含获取登录页面的cookie和code、模拟登录并获取签到所需token值、签到三个步骤。通过本文介绍的方法,用户可以方便快捷地进行虾米网的自动签到。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python脚本实现虾米网签到功能 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • Django models filter筛选条件详解

    下面我会提供一个完整的“Django models filter筛选条件详解”的攻略。我们将分步骤介绍筛选条件以及如何使用Django的filter方法来查询模型。 简介 Django是Python Web应用程序的基本框架之一。 在Django中,模型是由Python类表示的,每个类映射到数据库表。 要从数据库中检索数据,请使用Django ORM提供的许…

    云计算 2023年5月18日
    00
  • C#使用有道ip地址查询接口方法实例详解

    C#使用有道ip地址查询接口方法实例详解 本文将介绍如何在C#中使用有道ip地址查询接口进行IP地址查询。我们将会学习: 如何发送HTTP请求调用有道API 如何将API返回的JSON数据解析成C#对象 发送HTTP请求调用有道API 有道IP地址查询API是通过GET方法访问,请求URL为: http://apis.youdao.com/iplocatio…

    云计算 2023年5月17日
    00
  • asp.net实现存储和读取数据库图片

    实现存储和读取数据库图片的完整攻略需要以下步骤: 创建数据库表格 需要创建一个数据库表来存储图片,这个表至少需要包含以下两个字段: ImageId:图片ID,为主键自增长; ImageData:图片二进制数据,以byte[]类型存储。 例如: CREATE TABLE [dbo].[Images] ( [ImageId] INT IDENTITY(1,1) …

    云计算 2023年5月17日
    00
  • python 解决动态的定义变量名,并给其赋值的方法(大数据处理)

    Python 是一门动态语言,它允许我们在运行时动态的创建变量并对其进行赋值。本文介绍了 Python 中动态定义变量名并对其赋值的方法,同时提供了两个示例说明其应用在大数据处理中的情景。 问题描述 假设我们需要处理一个大数据集,其中的每一行数据都是一个列表,列表中的元素有时不尽相同,因此我们需要动态的创建变量名并对其赋值,便于后续的数据处理。 解决方法 我…

    云计算 2023年5月18日
    00
  • .NET 6中为record类型自定义Equals方法

    首先,需要在定义 record 类型时使用 record 关键字,然后重写 Equals 方法。下面是一个简单的 Person 类型记录表,其中含有两个属性 Name 和 Age: public record Person(string Name, int Age) { public bool Equals(Person other) { if (other…

    云计算 2023年5月17日
    00
  • 基于swagger测试List类型参数过程详解

    基于Swagger测试List类型参数过程详解 Swagger是一种流行的API文档工具,它可以帮助我们快速创建和测试API。在本文中,我们将详细介绍如何使用Swagger测试List类型参数。以下是详细步骤: 步骤1:创建Swagger文档 在测试List类型参数之前,我们需要创建Swagger文档。以下是一个示例说明,演示如何创建Swagger文档: s…

    云计算 2023年5月16日
    00
  • 深入分析京东的云计算PaaS平台所利用的技术

    以下是深入分析京东的云计算 PaaS 平台所利用的技术的详细攻略,包括以下内容: 京东云计算 PaaS 平台概述 京东云计算 PaaS 平台所利用的技术 示例说明 京东云计算 PaaS 平台概述 京东云计算 PaaS 平台是京东云推出的一款云计算平台,为企业提供云端应用开发、部署、运维等一站式服务。该平台支持多种编程语言和开发框架,提供了丰富的云计算资源和服…

    云计算 2023年5月16日
    00
  • 使用python对泰坦尼克号幸存者进行数据分析与预测

    使用Python对泰坦尼克号幸存者进行数据分析与预测 1. 确认问题与目标 在进行数据分析之前,我们需要明确问题与目标: 问题:预测泰坦尼克号上乘客的生存率 目标:使用泰坦尼克号乘客数据集,建立一个机器学习模型,预测乘客的生存率 2. 获取数据 在进行数据分析之前,我们需要获取相应的数据。我们可以使用Pandas库对泰坦尼克号乘客数据集进行读取,该数据集可以…

    云计算 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部