什么值得买是一个不错的hao yang mao网站,通过坚持不断签到就能会得到金币积分等奖励
下面通过Python来实现一个签到的脚本,然后把脚本放到服务器上,让它每天定时执行,这样就可以实现自动签到了

一、分析实现流程

  1. 通过浏览器抓取签到接口
  2. 分析接口的请求参数和响应数据
  3. 编写代码实现

二、通过浏览器抓取签到接口

由于现在张大妈的登录需要验证码,验证码是一个比较复杂的问题,这里就跳过验证码的问题,直接用Cookie进行免登录发送请求

打开 Chrome / Firefox 浏览器访问 什么值得买, 然后登录你的帐号

F12,点击网络(network)标签,点击页面的签到按钮,看到如下的请求,就是我们需要的签到接口了

三、分析接口的请求参数和响应数据

接口地址:https://zhiyou.smzdm.com/user/checkin/jsonp_checkin?callback=jQuery112402949185715359607_1631598321047&_=1631598321058

请求的报文如下:

GET /user/checkin/jsonp_checkin?callback=jQuery112402949185715359607_1631598321047&_=1631598321058 HTTP/1.1
Host: zhiyou.smzdm.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Referer: https://www.smzdm.com/
Cookie: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
Pragma: no-cache
Cache-Control: no-cache

正确请求响应如下:

jQuery112402949185715359607_1631598321047({"error_code":0,"error_msg":"","data":{"add_point":xxx,"checkin_num":"xx","point":xx,"exp":xx,"gold":xx,"prestige":xx,"rank":xx,"slogan":"<div class=\"signIn_data\">\u4eca\u65e5\u5df2\u9886<span class=\"red\">0<\/span>\u79ef\u5206<\/div>","cards":"85","can_contract":0,"continue_checkin_days":4,"continue_checkin_reward_show":false}})

错误响应如下:

jQuery112402949185715359607_1631598321047({"error_code":9999,"error_msg":"","data":[]})

从上面的请求和响应可以看出,该接口需要两个请求参数,一个是callback回调函数名称,一个是时间戳,响应的是JSONP数据,这就好办了,学过JSONP的原理就会知道,回调函数名称可以随便写,时间戳通过time模块获取一下,至于响应数据,我们只要拿到中间的JSON数据解析即可,一切就绪,下面开始编程实现

四、编程实现

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
@Desc: 本脚本用于smzdm签到
API:
GET https://zhiyou.smzdm.com/user/checkin/jsonp_checkin?callback=jQuery1124017478852004010437_1631422603307&_=1631422603315'''
__author__ = 'Conca'import requests
import time
import jsonheaders = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0","Referer": "https://www.smzdm.com/","Cookie": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  # 替换为你的cookie
}# 签到
def smzdm_sign_in():try:url = "https://zhiyou.smzdm.com/user/checkin/jsonp_checkin"params = {"callback": "myCalback","_": int(time.time()*1000)}# 发送一个get请求response = requests.get(url, params=params, headers=headers)response.raise_for_status()response.encoding = response.apparent_encoding# 由于返回的是JSONP数据,所以不能用response.json()来解析content = response.text# 截取JSONP中的JSON数据data = json.loads(content[content.find("{"):content.rfind(")")])if data.get("error_code") == 0:print("张大妈签到成功!!!总签到天数:", data.get("data").get("checkin_num"))else:print("签到失败,原因:", data.get("error_msg"))except Exception as e:print("张大妈签到出现错误;", e)def main():print("-------------------张大妈签到开始-------------------")smzdm_sign_in()print("-------------------张大妈签到结束-------------------")if __name__ == "__main__":main()

代码非常简单,只是用requests模块发送了一个请求。只要把上面的代码替换为你自己的cookieuser-agent运行即可

如果想让这个脚本每天定时运行,可以把这个脚本放到Linux服务器中,用crond 服务设置一个定时任务,让它每天定时运行。如果没有服务器,可以放到手机中运行,装一个termux APP,后面操作就和服务器差不多了,大家有兴趣可以去研究一下,这里就不展开了,我就是这么干的

五、总结

优点:

  • 简单易懂

不足之处:

  • 没有对登录进行处理,不能自动更新cookie,如果cookie过期,这个脚本就会失效
  • 没有做错误处理,如果发生网络错误,服务器错误等导致签到失败,程序不能及时通知用户,没有重复尝试机制
  • 张大妈的APP签到和网页签到好像是两个不同的接口,网页端签到完成,APP不显示已签到,后期可以发掘一下

Python爬虫 - 00.实现什么值得买签到相关推荐

  1. python 什么值得买 签到_第一个实用python程序——自动填写工作日志、签到

    刚刚把文章重看了一遍,自己给的评价就是:闲的没事干了? 1. 前言 一直苦于每天要分上下午两次写工作日志(不太能理解单位某些部门的脑洞--一天一次不行么?噢--噢噢,好吧,你们抄的模板就是分上下午的, ...

  2. 用Python爬虫的request方式实现自动签到

    人生苦短,快学Python! 大家好,我是朱小五.之前我曾经写过一个Python改变生活系列的文章,介绍自己如何使用Python解决了各种各样的日常需求.在这其中有一篇文章<Python改变生活 ...

  3. python爬虫微信e校园签到,用Python爬虫的request方式实现自动签到!

    使用selenium实现自动签到确实是一个方便快捷的方式,但不可否认的是这种方式确实有一个硬伤,就是太慢了,模拟浏览器进行加载.点击操作,即使用上显性等待这种高端操作也最多只能把整个运行过程优化到5秒 ...

  4. Python爬虫:还在纠结买什么手机?pyquery库给你参考答案

    目录 pyquery库 基本用法 CSS选择器 查找节点 查找子节点 查找父节点 查找其兄弟节点 获取节点信息 修改节点 伪类选择器 实战:抓取ZOL热门手机排行榜 pyquery库 虽然Beauti ...

  5. 宝塔面板部署青龙面板签到云音乐、什么值得买、b站

    宝塔面板部署青龙面板签到云音乐.什么值得买.b站 现在我们就介绍青龙面板的其他应用,签到各种网站,获得相应的积分和优惠.没有安装青龙的小伙伴看我们上一篇教程:青龙面板搭建教程安装,使用拉库持续更新,干 ...

  6. 宝塔面板+青龙面板部署除JD外各种签到合集(云音乐、值得买、b站等等)

    二话不说,先来图~ 如果没有青龙面板的小伙伴们,可以先去看一下我的宝塔+青龙面板部署教程:宝塔面板+多个青龙面板+Ninja+拉取脚本全方位教程一步到位. 这里假设大家都已经安装好了青龙面板,并且不满 ...

  7. Python实战一:什么值得买自动签到

    登录 登录地址 https://zhiyou.smzdm.com/user/login/ajax_check 登录参数 username=11779208@qq.com password=123456 ...

  8. python开发者大会_《中国Python开发者大会PyConChina2017》直播课-什么值得买

    大数据和人工智能技术的创新应用.今年,IEEE Spectrum 发布了第四届顶级编程语言排行榜,Python高居首位.谁会成为AI 和大数据时代的第一开发语言,在Facebook 开源了 PyTor ...

  9. 买不到口罩怎么办?Python爬虫帮你时刻盯着自动下单!| 原力计划

    作者 | 菜园子哇 编辑 | 唐小引 来源 | CSDN 博客 马上上班了,回来的路上,上班地铁上都是非常急需口罩的. 目前也非常难买到正品.发货快的口罩,许多药店都售完了. 并且,淘宝上一些新店口罩 ...

最新文章

  1. 贵港java_贵港人才网:经典java笔试题及答案分享
  2. 智能车竞赛技术报告 | 全向行进组 - 哈尔滨工业大学 - 紫丁香四队
  3. wxWidgets:将所有内容与 wxString 相互转换
  4. 如何创造出更优秀的用户体验?
  5. 动态规划( python)
  6. android拍照截图组件,Android_Android实现从相册截图的功能,在这篇文章中,我将向大家展 - phpStudy...
  7. Java编程思想学习(一)----对象导论中多态的理解
  8. 最值得入手的新旗舰来了:性价比极高
  9. 保存画面为图片 当前MFC保存该程序为图片 c++ vc
  10. panda是删除行_如何从Pandas数据帧中删除行列表?
  11. linux 安装scons
  12. js原生语法实现表格操作
  13. Windows2000资源工具包工具对于管理任务2
  14. xmemcached的time out
  15. C#编程如何安装Nupkg包
  16. Microsemi Libero使用技巧5——使用FlashPro生成stp程序文件
  17. c语言文件操作可重入,C语言试题
  18. 【转载】冗余与热备的概念区别
  19. 网络聊天室项目说明书
  20. OpenCvSharp 棋盘格标定助手

热门文章

  1. 多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比
  2. Outlook发邮件时忘记写主题的解决方法
  3. vue.js移动端记账本完成的总结(未完待续,电脑快没电了) 1
  4. 飞秋接收文件提示防火墙
  5. 华为鸿蒙系统能用几年不卡,除了苹果,这四款华为也能三年不卡,还能升级鸿蒙!...
  6. php知识库管理系统,开源知识库管理系统
  7. 为什么使用消息中间件
  8. Java 实现 POS 打印机无驱打印 【转】
  9. 常用的表格检测识别方法——表格结构识别方法 (下)
  10. Android全屏播放视频~包括刘海屏、隐藏时间状态栏