Python爬虫实现自动登录与每日签到功能实战

季宁
季宁
发布时间:2026-10-14| 4人浏览过
原创

本文介绍如何利用Python编写爬虫程序,结合Fiddler工具分析网络请求,实现特定素材网站的自动登录与每日签到功能。通过抓取登录接口和签到接口的参数及Cookie,程序可模拟用户操作自动获取积分,并可通过Windows任务计划实现定时运行,解决手动签到繁琐的问题。

更新记录:2016年8月9日。近期发现目标网站已屏蔽该登录签到接口(注:尽管如此,作者仍通过此方式获取了约一万点积分)。

Python爬虫自动签到背景与工具准备

此前,作者女友反映在某素材网站下载资源时积分常显不足。该网站积分主要通过每日登录签到获得,也可购买,但女友因使用频率低且易忘记签到,导致积分短缺。为解决这一痛点,作者编写了一个Python爬虫,旨在每日自动执行签到以积累积分。下文将详细解析相关代码实现。

本教程基于Python 3.4版本编写,使用Python 2.x的用户请自行参考其他相关资料。

辅助工具:Fiddler

首先需下载安装Fiddler软件。该工具用于监听网络请求,帮助分析具体的请求链接及传输参数。

访问目标网站:http://www.17sucai.com/,并点击登录按钮。

在尝试登录前,先启动Fiddler。此时Fiddler中尚未捕获到任何网络请求。随后回到网页,输入邮箱和密码并点击登录,再返回Fiddler查看捕获结果。

Fiddler列表中的第一个请求即为点击登录后发出的网络请求。点击该链接,可在右侧面板查看详细的请求信息。

点击“WebForms”标签页,可查看提交的具体请求参数,即用户名和密码。

使用Fiddler分析登录请求

接下来,通过代码实现上述登录功能。

Python登录功能代码实现


import urllib.request
import urllib
import gzip
import http.cookiejar
 
#定义一个方法用于生成请求头信息,处理cookie
def getOpener(head):
 # deal with the Cookies
 <pre name="code" class="python"> cj = http.cookiejar.CookieJar()
 pro = urllib.request.HTTPCookieProcessor(cj)
 opener = urllib.request.build_opener(pro)
 header = []
 for key, value in head.items():
  elem = (key, value)
  header.append(elem)
 opener.addheaders = header
 return opener
 
#定义一个方法来解压返回信息
def ungzip(data):
 try:  # 尝试解压
  print('正在解压.....')
  data = gzip.decompress(data)
  print('解压完毕!')
 except:
  print('未经压缩, 无需解压')
 return data
 
#封装头信息,伪装成浏览器
header = {
 'Connection': 'Keep-Alive',
 'Accept-Language': 'zh-CN,zh;q=0.8',
 'Accept': 'application/json, text/javascript, */*; q=0.01',
 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
 'Accept-Encoding': 'gzip, deflate',
 'X-Requested-With': 'XMLHttpRequest',
 'Host': 'www.17sucai.com',
}
 
 
url = 'http://www.17sucai.com/auth'
opener = getOpener(header)
 
id = 'xxxxxxxxxxxxx'#你的用户名
password = 'xxxxxxx'#你的密码
postDict = {
  'email': id,
  'password': password,
}
 
postData = urllib.parse.urlencode(postDict).encode()
op = opener.open(url, postData)
data = op.read()
data = ungzip(data)
 
print(data)

清空Fiddler记录后运行程序,观察Fiddler中的捕获情况。

点击该链接,对比右侧请求信息,确认其与浏览器手动请求的内容一致。

以下是程序运行后打印的输出信息。

返回结果中code=200表示登录成功。

获取签到接口与Cookie处理

随后需获取签到接口的URL。为此,需使用一个未签到的账号在网站上点击签到按钮,并通过Fiddler捕获签到链接及相关信息。

点击“签到”按钮,签到成功后,在Fiddler中查看捕获到的URL。

点击该URL,可在右侧查看访问该链接所需的头信息(Headers)和Cookies等数据。由于登录成功后已获取Cookie,Python对Cookie处理有良好封装,以下代码展示了Cookie的具体使用方法。


cj = http.cookiejar.CookieJar()
 pro = urllib.request.HTTPCookieProcessor(cj)
 opener = urllib.request.build_opener(pro)

签到成功返回的信息中,code=200表示请求成功,day=1表示连续签到天数,score=20表示本次获得的积分数。

下方提供完整代码。测试时,需使用一个尚未签到的账号。

签到功能代码与定时任务配置


import urllib.request
import urllib
import gzip
import http.cookiejar
 
 
def getOpener(head):
 # deal with the Cookies
 cj = http.cookiejar.CookieJar()
 pro = urllib.request.HTTPCookieProcessor(cj)
 opener = urllib.request.build_opener(pro)
 header = []
 for key, value in head.items():
  elem = (key, value)
  header.append(elem)
 opener.addheaders = header
 return opener
 
def ungzip(data):
 try:  # 尝试解压
  print('正在解压.....')
  data = gzip.decompress(data)
  print('解压完毕!')
 except:
  print('未经压缩, 无需解压')
 return data
 
 
header = {
 'Connection': 'Keep-Alive',
 'Accept-Language': 'zh-CN,zh;q=0.8',
 'Accept': 'application/json, text/javascript, */*; q=0.01',
 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
 'Accept-Encoding': 'gzip, deflate',
 'X-Requested-With': 'XMLHttpRequest',
 'Host': 'www.17sucai.com',
}
 
 
url = 'http://www.17sucai.com/auth'
opener = getOpener(header)
 
id = 'xxxxxxx'
password = 'xxxxxxx'
postDict = {
  'email': id,
  'password': password,
}
 
postData = urllib.parse.urlencode(postDict).encode()
op = opener.open(url, postData)
data = op.read()
data = ungzip(data)
 
print(data)
 
 
url = 'http://www.17sucai.com/member/signin' #签到的地址
 
op = opener.open(url)
 
data = op.read()
data = ungzip(data)
 
print(data)

与登录相比,签到仅在登录成功后重新打开一个链接即可。由于作者账号均已签到,此处不再展示运行截图。

最后一步是在电脑上编写bat脚本,并在Windows“任务计划”中添加定时任务,以实现自动化运行。

在此之前,需确保Python环境变量已配置正确,此处不再赘述。

至此,关于Python爬虫实现自动登录与签到功能的代码介绍完毕。如需了解更多Python爬虫相关内容,请搜索本站历史文章或继续阅读后续文章,感谢支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。