python自动爬取数据,制作简报,推送到个人微信

2024-03-10 13:50

本文主要是介绍python自动爬取数据,制作简报,推送到个人微信,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、需求场景

每天早上需要从后台查询统计前一日的销售情况,并将结果发送至微信群。由于样式固定,基本都是重复操作,于是用python编写了一个脚本,定时查询、统计并推送。基本流程如下:

  • 定时刷新后台保持登录状态

  • 每天早8点查询后台数据

  • 统计分析并推送至微信

下面是相关脚本,稍微修改即可直接使用。

二、登录保持和数据采集脚本


import requests
import threading
import time
from datetime import datetimedef visit_url(url, method, data, cookie):headers = {'Cookie': cookie,'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}if method == "GET":response = requests.get(url, headers=headers)elif method == "POST":response = requests.post(url, headers=headers, data=data)return response.textdef keep_login(url, cookie, interval):while True:print(f"{datetime.now()} : 访问 {url} 以保持登录状态")visit_url(url, "GET", None, cookie)time.sleep(interval)def visit_url_periodically(url, method, data, cookie, target_time):while True:current_time = datetime.now().strftime("%H:%M")current_time_obj = datetime.strptime(current_time, "%H:%M")target_time_obj = datetime.strptime(target_time, "%H:%M")time_diff = (current_time_obj - target_time_obj).secondsif time_diff < 60:print(f"{datetime.now()} : 访问 {url} 并将结果写入 output.txt")response_text = visit_url(url, method, data, cookie)with open("output.txt", "w") as file:file.write(response_text)time.sleep(60)  # 每隔一分钟检查一次是否到达目标时间def main():# 设置网址和cookie,根据实际情况修改url1 = "http://xxx/main"url2 = "http://xxx/finance/getSellList"cookie = "JSESSIONID=CC99B8FB01ED15EAFA5DA612CC217CDB"# 设置循环间隔时间(秒)interval = 300  # 5分钟# 创建并启动保持登录的线程login_thread = threading.Thread(target=keep_login, args=(url1, cookie, interval))login_thread.start()# 准备访问url2的参数,数据查询参数,可通过浏览器F12查看修改url2_data = {'timeStart': '2023-11-27','timeEnd': '2023-11-27','id': '233','mode': '1','start': '0','length': '15'}# 创建并启动定时访问url2的线程visit_thread = threading.Thread(target=visit_url_periodically, args=(url2, "POST", url2_data, cookie, "08:00"))visit_thread.start()if __name__ == "__main__":main()

keep_login函数为登录状态保持脚本,visit_url_periodically函数为数据采集脚本。修改main函数中的url1、url2、cookie、url2_data后可直接使用。

采集的数据为json格式,示例如下:

三、数据统计分析脚本 

import json
import requests# 从output.txt读取json文件
with open('output.txt', 'r') as file:data = json.load(file)# 格式化编排内容
formatted_content = '【昨日销量简报】\n'
for item in data['data']:formatted_content += f"{item['name']}: {item['count']}, {item['income']}\n"# 发送编排的内容
# yourtoken 获取方式见底部介绍
url = f"https://cglapp.top/api/wxpush/txt?token={yourtoken}&msg={formatted_content}"
response = requests.get(url, verify=False)  # 忽略证书问题print(response.text)

Windows设置定时任务,定时执行上述脚本,即可推送简报至微信。

四、配置定时运行

  1. 打开“控制面板”。

  2. 在控制面板中,选择“管理工具”。

  3. 在“管理工具”中,找到并打开“任务计划程序”。

  4. 在任务计划程序窗口中,选择“创建基本任务”或“创建任务”(具体名称可能略有不同)。

  5. 在弹出的窗口中,输入任务的名称和描述,然后点击“下一步”。

  6. 选择触发器,选择“每天”,并设置执行时间为早上8:05。然后点击“下一步”。

  7. 选择“启动程序”作为操作,然后在“程序/脚本”处输入Python解释器的路径(通常是类似于C:\Python\python.exe的路径),并在“参数”处输入要运行的Python脚本的路径。然后点击“下一步”。

  8. 在最后的确认页面上,检查任务设置是否正确,然后点击“完成”。

  9. 每天早上8:05执行Python脚本的定时任务设置完成。

五、个人微信配置方式

【教程】文本消息推送服务接入说明

这篇关于python自动爬取数据,制作简报,推送到个人微信的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/794430

相关文章

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调