Python抓取我的CSDN粉丝数,白嫖GithubAction自动抓取

news/2024/4/17 2:50:29/文章来源:https://blog.csdn.net/qq_34035956/article/details/127622414

《Python抓取我的CSDN粉丝数,白嫖GithubAction自动抓取》

一.介绍

这段时间我想申请CSDN的博客专家认证,但是我发现我的总访问量不够(博客专家的总访问量要大于20万),所以我就想把我的CSDN每天的 【总访问量】,【原创】,【排名】,【粉丝】,【铁粉】这几个数据记录下来。
在这里插入图片描述
这里使用PythonGithubAction来实现我上面的需求。

二.实现

1.python爬取csdn主页数据

【这里我使用的IDE是PyCharm】
新建csdn_crawler.py文件用来抓取我的CSDN主页,具体代码如下:

import datetime
import requests
import bs4if __name__ == '__main__':url = 'https://blog.csdn.net/qq_34035956'headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36(KHTHL, like Gecko) Chrome/45.0.2454.101 Safari/537.36',}html_file = requests.get(url, headers=headers)obj_soup = bs4.BeautifulSoup(html_file.text, 'lxml')result = []names = obj_soup.select('div .user-profile-statistics-name')numbers = obj_soup.select('div .user-profile-statistics-num')for i in range(len(numbers)):result.append("{}: {}".format(names[i].text, numbers[i].text))now_time = datetime.datetime.now()year = now_time.yearmonth = now_time.monthday = now_time.dayhour = now_time.hourminute = now_time.minutesecond = now_time.secondoutput = "\n{}_{}_{}_{}_{}_{}\t {}".format(year, month, day, hour, minute, second, result)with open("./csdn_data.txt", mode="a") as f:f.write(output)

运行后可以看到自动生成了csdn_data.txt文件,并且有以下内容:
在这里插入图片描述
可以看到,我们要的几个数据【[‘总访问量: 123,062’, ‘原创: 179’, ‘排名: 7,858’, ‘粉丝: 1,524’, ‘铁粉: 131’]】都在这里面了。

2.配置GithubAction

简单列一下步骤

  1. 新建Github仓库
  2. 新建.github目录,新建.github/workflow目录
  3. 在.github/workflow目录下新建craw.yml

craw.yml用来配置GitHub Action自动化工作流,内容如下:

name: 定时抓取on:workflow_dispatch:schedule:- cron: '0 * * * *'   #Runs every hour, on the hour#- cron: '0 23 * * *'  #Runs at 23:00 UTC every day.jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v2- name: run start.shrun: |bash ./start.sh- name: GitHub Pushuses: ad-m/github-push-action@v0.6.0with:github_token: $\{{ secrets.GITHUB_TOKEN }}branch: main

3.新建start.sh调用csdn_crawler.py

第2点的craw.yml中,我们调用了start.sh这个文件,现在我们就在仓库最外层新建start.sh这个文件,文件内容如下:

pip install beautifulsoup4
pip install lxml
python3 ./csdn_crawler.pyyear=`date +%Y `
month=`date +%m `
day=`date +%d `
hour=`date +%H`
min=`date +%M`
now=$year-$month-$day-$hour-$mingit config --global user.email "13538898378@163.com"
git config --global user.name "hankangwen"git add .
git commit -m "$now"

把上面git config的email和name改为你自己的名字。

4.启用Github Action

在Actions下启用一个Workflows,可以看到我这里已经有一个名字为“定时抓取”的workflow了。
在这里插入图片描述

三.开源地址

上面所有的代码都在下方这个开源仓库里,如果你没有成功配置可以fork我的仓库,改一下抓取的url地址,然后启用一下Github Action就可以了。
开源地址:https://github.com/hankangwen/MyCSDNData
在这里插入图片描述

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

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

相关文章

芯片与自动驾驶技术漫谈

芯片与自动驾驶技术漫谈 从芯片到系统国产,信创产业如何4步走上自主路? 信创产业发展是国家经济数字化转型、提升产业链发展的关键。我国明确了“数字中国”建设战略,抢占数字经济产业链制高点。推进信创产业的发展,促进信创产业在区域性落地生根,带动传统IT信息产业转型,…

【光通信】常见光模块与光纤收发器说明及作用区别

:单纤收发器是指采用的是单模光缆 单纤收发器是只用一根芯,两端都接这根芯,两端的收发器采用不同的光波长,所以能在一根芯里传输光信号。 双纤收发器就是采用了两根芯,一根发送一根接收,一端是发的另一端就…

MongoDB 分片集群均衡器导致的性能下降

近期,有人反馈其mongodb分片集群,在加载处理大批量数据时,程序处理十分缓慢并且应用还会报错:version mismatch detected for 。现将分析汇总如下备用。 一、问题现象 负责同事反馈9月1日18:52分左右,应用报错version…

计算机毕业设计(附源码)python医院预约挂号管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

学习笔记-php伪协议

伪协议 相关文章 & Source & Reference PHP伪协议的妙用 filter协议 php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents()&#x…

网课查题系统搭建-查题校园题库

网课查题系统搭建-查题校园题库 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台&…

【C++笔记】第十九篇 多态

C的多态 1. 多态简介 ① 多态是C面向对象三大特性之一。 ② 多态分为两类: 静态多态:函数重载和运算符重载属于静态多态,复用函数名。动态多态:派生类和虚函数实现运行时多态。 ③ 静态多态和动态多态区别: 静态…

【源码分析】Spring中的设计模式——Context与Factory的关系

省流助手 两个类都实现了同一个接口,但是其中一个类对接口的实现是通过调用另一个类的接口实现来实现的,这就是静态代理模式(也可以说是装饰器模式,这俩区别不大) 这个例子中就是AbstractBeanFactory和AnnotationConfigApplicationContext都…

电子签批板那个品牌好用?国产柜台电子签名板推荐

如今已正式迈入数字时代,电子合同、电子签名不再新奇,各行各业对电子签名呈现出多元化的细分需求,应用场景也更加广泛。目前通信、银行、保险、酒店、政务等有柜台业务服务的领域大多都已配备了电子签字板用以替代传统纸张业务办理流程。加上…

First time to know JAVA

文章目录前言1.JAVA语言概述1.1 JAVA是什么?1.2 JAVA语言的重要性1.3 JAVA语言的发展简史1.4 JAVA语言的特性2.初识JAVA的main方法2.1 main方法示例2.2 运行JAVA程序3.JAVA中的注释3.1 JAVA注释的基本规则3.2 JAVA注释规范4.初始JAVA中的标识符5.初始JAVA中的关键字…

pycharm中做web应用(12)基于Django和mysql 做用户登录验证2

目录pycharm中做web应用(12)基于Django和mysql 做用户登录验证2Django的用户验证方法Django架构的数据模型数据模型实现方法1:数据模型实现方法2:代码的实现pycharm中做web应用(12)基于Django和mysql 做用户…

什么蓝牙耳机听歌好?听歌音质好的蓝牙耳机推荐

蓝牙技术已经非常先进了,很多蓝牙耳机的音质体验可以跟有线耳机媲美了。正因为蓝牙耳机的便捷,越来越多的人开始选择蓝牙耳机。如果你还在纠结听歌的音质的话,可以看看下面几款! 1、南卡小音舱蓝牙耳机 音质推荐指数&#xff1a…

IDERA ER/Studio Data Architect构建数据模型

IDERA ER/Studio Data Architect能够从用户的单个界面为多个数据库平台创建和管理数据模型。信息建模人员和架构师都希望对与小型业务需求相关的不同高度的数据做出反应。有一些关键行动可能希望他们的重点包括在内。 这些措施包括: 构建数据模型作为增长周期的一部…

LeetCode刷题day25||216.组合总和III17.电话号码的字母组合--回溯

文章目录216.组合总和III题目描述思路分析代码17.电话号码的字母组合题目描述思路分析代码216.组合总和III 题目描述 题目链接 思路分析 相对于77. 组合 (opens new window),无非就是多了一个限制,本题是要找到和为n的k个数的组合,而整个集…

基于全志T133-s3(Tina Linux)移植7寸RGB显示屏驱动

基于全志T133-s3(Tina Linux)移植7寸RGB显示屏驱动1.硬件电路2.LCD实物图3.LCD 的驱动4.uboot配置4.1.配置文件4.2.uboot设备树5.kernel配置5.1.内核配置5.2.设备树配置6.测试屏幕7.LVGL实测1.硬件电路 2.LCD实物图 3.LCD 的驱动 Tina Linux 提供了一套…

查题公众号搭建

查题公众号搭建 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击跳转…

TI Application Notes_Programming Chirp Parameters in TI Radar Devices

Application Notes_Programming Chirp Parameters in TI Radar Devices 1 介绍 system requirement and chirp configuration:系统要求决定了波形或者chirp如何配置。甲方首先提出要求,然后乙方根据要求进行chirp设计。chirp参数的不同会影响系统的参数,如Rmax,Vmax,Rre…

107.(前端)分类管理增加值实现——使用elementui中的动态编辑标签发送请求

1.概述 本节要实现的功能就是,当我们点击动态编辑标签时,丢失焦点或者回车时,发送请求。 2.流程 handleInputConfirm()中,验证form输入框中是否存在值,若存在添加数据到val,若不存在,就制空va…

RHCE(逻辑卷LVM,NFS服务)

LVM逻辑卷管理, 是将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很…

《循序渐进学docker》书摘

循序渐进学docker笔记摘要 docker工作流程docker版本控制 和增量更新docker制作和下发镜像流程图windows安装 :docker官网下载docker ToolDbxdocker搭建个人博客wordpressdocker搭建本地gitlab服务docker基本概念:镜像 容器 仓库docker指令和基本用法docker工作流程