网页如何集成各社区征文活动

Helllo , 我是小恒
由于我需要腾讯云社区,稀土掘金以及CSDN的征文活动RSS,找了一下没发现,所以使用GET
请求接口对网页定时进行拉取清洗,甚至无意间做了一个简单的json格式API

最终网址:hub.liheng.work
API:http://hub.liheng.work/activities.json
GitHub:https://github.com/lmliheng/hub
在这里插入图片描述

原理

由于浏览器的同源策略产生的跨域问题,使得CSDN官方URL无法被请求获取展示到前端
使用后端代码GET网页代码,对其进行数据清洗,并导入json文件
注意后端程序的定时任务以及日志打印
前端代码调用本地json,也不存在跨域,从而实现需求

代码结构

├───pyproject/
│   ├───activities.json
│   ├───htmlone.py
│   ├───index.html
│   ├───script.log

后端

实现HTML转json的数据清洗,以及打印日志到scripts.log文件

#作者:小恒不会java
#时间:2024年5月13日
#微信:a13551458597
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import json
import logging
from datetime import datetimelogging.basicConfig(filename='script.log', level=logging.INFO)
logging.info('Script started at {}'.format(datetime.now()))# 获取HTML内容,这种形式是避免get请求的跨域问题
url = 'https://bbs.csdn.net/forums/activity?spm=1035.2022.3001.8781&typeId=745490'
response = requests.get(url)
html_content = response.text# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(html_content, 'html.parser')activities = []# 检查做到避免重复活动
posts = soup.find_all('div', {'class': 'content'})
for post in posts:activity = {}# 获取活动名称title_element = post.find('div', {'class': 'long-text-title'})if title_element:activity['name'] = title_element.text.strip()# 获取活动简介desc_element = post.find('div', {'class': 'item-desc'})if desc_element:activity['description'] = desc_element.text.strip()# 获取活动链接link_element = post.find('a', href=True)if link_element:activity['link'] = link_element['href']# 检查活动是否已存在if 'link' in activity and not any(existing_activity['link'] == activity['link'] for existing_activity in activities):activities.append(activity)print(activities)with open('activities.json', 'w', encoding='utf-8') as f:json.dump(activities, f, ensure_ascii=False, indent=4)logging.info('Script finished at {}'.format(datetime.now()))

定时任务

我服务器系统是linux centos7
使用cron完成定时运行,并通过python代码日志打印检验运行情况

检查cron服务是否正在运行:
```shell
sudo systemctl status cron或者ceond

如果cron服务未运行,请使用以下命令启动它:

sudo systemctl start cron

编辑crontab文件

crontab -e

在打开的编辑器中,添加一行以设置定时任务。例如,要每天凌晨1点运行Python脚本,请添加以下行

0 1 * * * /usr/bin/python /path/to/your/script.py

列出当前用户的crontab条目:

crontab -l

日志打印检查

scripts.log

[root@iZ7xvavc793m36sybr4bw4Z hub.liheng.work]# cat scripts.log
INFO:root:Script started at 2024-05-13 21:11:36.571745
INFO:root:Script finished at 2024-05-13 21:11:37.311995
[root@iZ7xvavc793m36sybr4bw4Z hub.liheng.work]# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11560.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

升级! 测试萌新Python学习之连通数据库Pymsql增删改及封装(四)

pymysql 数据库概述python对数据库的增删改查pymysql核心操作事务事务操作pymysql工具类封装每日复习ChatGPT的回答 数据库概述 分类 关系型数据库: 安全 如, mysql oracle SQLite…database tables 行列 非关系型数据库: 高效 如, redis mongoDB…数据存储结构多样 键值对…

Python Socket

一、服务端 from socket import *def print_hi(name):print(fHi, {name})# 允许所有ip连接IP 0.0.0.0# 端口PORT 8003# 定义一次从socket缓冲区读入512个字节数据BUFFER_LEN 512# 实例化socket对象 listenSocket 用来监听的socketlistenSocket socket(AF_INET, SOCK_STREA…

主题替换解决方案-打造完善多主题

目录 01: 主题替换原理分析 02: TailWind DarkMode 原理 03: 为组件增加 Dark 适配 04: DarkMode 在复杂应用中的实现逻辑分析 05: DarkMode 在复杂应用中的实现 06: 跟随系统的主题变更 07: 总结 01: 主题替换原理分析 主题替换原理:通过类名来控制对应的样…

2023-2024 联邦推荐 × 顶会

目录 AAAI2024 Federated Contextual Cascading Bandits with Asynchronous Communication and Heterogeneous Users General Commerce Intelligence: Glocally Federated NLP-Based Engine for Privacy-Preserving and Sustainable Personalized Services of Multi-Merchan…

Kubernetes——命令指南

目录 前言 1.检查集群状态 2.使用Pod 3.使用部署 4.使用服务 5.使用 ConMap 和 Secret 6.调试与故障排除 7.清理 8.使用命名空间 9.管理持久卷 10.处理节点 11.资源配额和限制范围 12.访问API对象 13.总结 前言 kubectl 是针对Kubernetes集群运行命令的命令行界…

怎么通过微信小程序实现远程控制8路控制器/断路器

怎么通过微信小程序实现远程控制8路控制器/断路器呢? 本文描述了使用微信小程序调用HTTP接口,实现控制8路控制器/断路器,支持8路输出,均可独立控制,可接入各种电器。 可选用产品:可根据实际场景需求&#…

DS:顺序表、单链表的相关OJ题训练(2)

欢迎各位来到 Harper.Lee 的学习世界! 博主主页传送门:Harper.Lee的博客主页 想要一起进步的uu欢迎来后台找我哦! 一、力扣--141. 环形链表 题目描述:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个…

提升网络性能,解决网络故障,了解AnaTraf网络流量分析仪

在当今数字化时代,网络性能监测与诊断(Network Performance Monitoring and Diagnosis,NPMD)成为了企业和个人关注的焦点。随着网络流量不断增长,确保网络的稳定性和高效性变得更加重要。在这个领域,AnaTraf网络流量分析仪是您不可或缺的得力…

从“金事通”带给我意想不到的来说--“数据是架构的中心”

背景 上周一个保险的销售人员来找我完成一定的售后流程。其中有一项是请我下载一个叫 金事通的 APP。说实在的我根本没听过。她说这是政治任务。我想不是有你们保险公司的APP了嘛。为什么还要我安装。没办法先安装吧。 经历了注册、人脸识别的步骤后。可以登录了。注册短信发…

使用Docker+Jar方式部署微服务工程(前后端分离)看着一篇就够了

本篇教程的使用到的技术有springboot、springcloud、Nacos、Docker、Nginx部署前后端分离访问的微服务。 部署一下Nacos 首先我们需要在服务器中(或者本地部署启动一下Nacos),这里我采用服务器的方式进行部署,这里有一点不一样的…

前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽

🔥 个人主页:空白诗 文章目录 引言 👋一、Nginx简介 📚二、常见的Web服务器架构 🌀📌 架构概述📌 Nginx的深入探讨 三、正向代理与反向代理 🔮📌 正向代理工作原理&#…

Leecode热题100---1:两数之和

题目&#xff1a;从nums中找出两个元素&#xff0c;它们的和等于target&#xff0c;返回下标。 C&#xff1a; 1、直接暴力法 写嵌套循环&#xff0c;让每一个元素和其他元素分别相加&#xff0c;判断和是否等于target&#xff0c;等于就返回下标。 #include <iostream>…

RabbitMQ(四种使用模式)

文章目录 1.Fanout&#xff08;广播模式&#xff09;1.基本介绍2.需求分析3.具体实现1.编写配置类 RabbitMQConfig.java2.编写生产者&#xff0c;发送消息到交换机 MQSender.java3.编写消费者&#xff0c;接受消息 MQReceiver.java4.控制层调用方法&#xff0c;发送信息到交换机…

git error index file corrupt

错误提示&#xff1a; error: bad signature 0x00000000 fatal: index file corrupt 场景复现&#xff1a;在使用git add .提交代码到缓冲区时电脑宕机&#xff0c;重启后再次提交代码会出现该提示 原因分析&#xff1a;.git目录下的index文件损坏 解决方式&#xff1a; 删…

工程师工具箱系列(3)Arthas

文章目录 工程师工具箱系列&#xff08;3&#xff09;Arthas安装与准备Arthas插件使用场景查看某个变量值ognl方式调用Bean方法tt(TimeTunel)方式调用Bean的方法ognl调用带参数方法 资源总览 工程师工具箱系列&#xff08;3&#xff09;Arthas Java诊断利器 安装与准备 window…

LabVIEW学习记录3 - 自定义函数

LabVIEW学习记录3 - 自定义函数 一、LabVIEW学习记录二、自定义函数及函数调用 一、LabVIEW学习记录 【labVIEW】学习记录LabVIEW学习记录2 - MySQL数据库连接与操作LabVIEW学习记录 - 实时显示时间LabVIEW学习记录4-局部变量、全局变量、共享变量 二、自定义函数及函数调用 …

C++入门-stack和queue(下)

大家好啊&#xff0c;在这先祝天下的母亲节日快乐啦&#xff01;现在呢&#xff0c;给大家带来C中priority_queue和容器适配器的相关知识点 3.1 C 中的优先队列&#xff08;priority_queue&#xff09;介绍 优先队列&#xff08;priority_queue&#xff09;是一种特殊的队列…

洛谷 P6218 [USACO06NOV] Round Numbers S 题解 数位dp

[USACO06NOV] Round Numbers S 题目描述 如果一个正整数的二进制表示中&#xff0c; 0 0 0 的数目不小于 1 1 1 的数目&#xff0c;那么它就被称为「圆数」。 例如&#xff0c; 9 9 9 的二进制表示为 1001 1001 1001&#xff0c;其中有 2 2 2 个 0 0 0 与 2 2 2 个 1 …

Linux部署Heartbeat

环境信息&#xff1a; 10.1.13.75 master 10.1.13.140 slave 10.1.13.247 VIP 一&#xff0c;基础环境处理 1&#xff0c;修改主机名 master节点 hostnamectl set-hostname master slave节点 hostnamectl set-hostname slave 2&#xff0c;修改/etc/hosts vi /etc/hos…

transformer与beter

transformer与beter 解码和编码器含义tokizer标记器和one-hot独热编码编码解码--语义较好的维度空间矩阵相乘--空间变换编码理解如何构造降维的嵌入矩阵--实现到达潜空间上面是基础&#xff0c;下面是transformer正文自注意力机制注意力分数--上下文修正系数为什么需要KQ两个矩…