如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台

这篇具有很好参考价值的文章主要介绍了如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

灵感源于之前写过的Github中Readme.md中可以插入自己的js图片和动态api解析模块,在展示方面十分的美观:

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台,python,媒体,开发语言,人工智能,AIGC
这方面原理可以简化为,在Markdown中,你可以使用HTML标签来添加图像,就像这样:

  <tr>
    <td><img src="https://github-readme-stats.vercel.app/api?username=fanstuck&show_icons=true&count_private=true&theme=vue-light&hide_border=true" alt="fanstuck's GitHub stats" style="zoom:100%;" align="left"/></td>

具体来说,你可以使用<img>标签来嵌入图像,并使用src属性指定图像的URL。我们可以通过访问这个API端点,可以获取到一张包含指定GitHub用户统计信息的图像,然后可以在GitHub的README文件中使用这个图像来展示用户的GitHub统计信息。那么如果我们想要像大家展示我们其他媒体的数据,只需要开发出每个平台的相应的展示接口就可以集成到一个markdown文件展示了。

博主承诺每篇文章我都会尽可能将简化涉及到垂直领域的专业知识,转化为大众小白可以读懂易于理解的知识,将繁杂的程序创建步骤逐个拆解,以逐步递进的方式由难转易逐渐掌握并实践,欢迎各位学习者关注博主,博主将不断创作技术实用前沿文章。

拆解开发步骤

首先我们需要明白一点:https://github-readme-stats.vercel.app/api?username=fanstuck&show_icons=true&count_private=true&theme=vue-light&hide_border=true 这个https是一个GitHub API端点,用于生成用户的GitHub统计数据图像,通常用于在GitHub的README文件中展示用户的GitHub统计信息。参数username指定了用户的GitHub用户名(这里是"fanstuck"),其他参数用于指定要显示的统计信息,如图标、私有库数量等。

通过访问这个API端点,可以获取到一张包含指定GitHub用户统计信息的图像,然后可以在GitHub的README文件中使用这个图像来展示用户的GitHub统计信息。所以说我们需要开发对应解析获取不同平台主体信息的API,然后集成即可。这里我们以开发腾讯云社区博主用户为例,具体流程可以分为:

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台,python,媒体,开发语言,人工智能,AIGC

数据获取

一般来说一个账户都有对应UID,相当于就是用户识别码,通过这个用户识别码可以访问到用户的主页:

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台,python,媒体,开发语言,人工智能,AIGC

主页链接访问:https://cloud.tencent.com/developer/user/9822651,也是基于这个UID来访问,因此我们可以从网页参数直接访问获取,获取个人成就模块:

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台,python,媒体,开发语言,人工智能,AIGC

获取这些数据的方法有很多种,我这里直接使用selenium方便:

def get_info(url):
    # 打开登录页面
    driver.get(url)
    user_articles_click=driver.find_elements(By.CSS_SELECTOR,"div.com-tab:nth-child(1) > div:nth-child(1) > ul:nth-child(1) > li:nth-child(3) > a:nth-child(1)")
    user_articles_click[0].click()
    list_articles=driver.find_elements(By.CSS_SELECTOR,"div.com-weak-section-bd > ul.com-3-article-panels > li.panel-cell")
    num_articles=len(list_articles)
    print("fanstuck的腾讯云数据:")
    data["创作文章数"] = num_articles
    print("创作文章数:{}".format(num_articles))

    user_info=driver.find_elements(By.CLASS_NAME, 'uc-achievement')
    for i in range(len(user_info)):
        if i == 0:
            text_elements =(user_info[i].find_elements(By.CSS_SELECTOR, 'a.uc-achievement-text'))
            rank_text  = text_elements[0].text
            rank_number =re.search(r'第\s*(\d+)\s*名', rank_text).group(1)
            data["2024年作者热度排名"] = int(rank_number)
            print(text_elements[0].text)
        else :
            text_elements = (user_info[i].find_elements(By.CSS_SELECTOR, 'span.uc-achievement-text'))
            if i == 1:
                text_1 = text_elements[0].text
                thumbs_up = re.search(r'\d+', text_1).group()
                data["获得赞同次数"] = int(thumbs_up)
            elif i == 2:
                text_2 = text_elements[0].text
                read_count = re.search(r'\d+\.?\d*', text_2).group()
                if "K" in text_2:
                    read_count = float(read_count) * 1000
                data["文章阅读次数"] = int(read_count)
            elif i == 3:
                text_3 = text_elements[0].text
                recommend = re.search(r'\d+', text_3).group()
                data["文章首页推荐次数"] = int(recommend)

            print(text_elements[0].text)

这里就不过得做实现的造轮子,大家可以看到展示结果:

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台,python,媒体,开发语言,人工智能,AIGC

能够在后台获取到数据之后我们就可以着手来做可视化效果展示图片了。

数据可视化

我推荐大家可以试试echarts,我这里直接用pyechart开发:

def picture_data(data):
    # 提取排名数字
    rank_value = data.pop("2024年作者热度排名", None)  # 使用 pop 方法直接删除并返回排名值
    if rank_value:
        rank_text = "2024年作者热度排名: 第 {} 名".format(rank_value)
    else:
        rank_text = "2024年作者热度排名: 未知"
​
    # 创建柱状图
    bar = (
        Bar()
        .add_xaxis(list(data.keys()))
        .add_yaxis("", list(data.values()), color="#5470C6")
        .set_global_opts(title_opts=opts.TitleOpts(title=f"fanstuck腾讯云数据 - {rank_text}"),  # 将排名信息加入标题
                         legend_opts=opts.LegendOpts(is_show=False))
    )
    # 创建网格布局
    grid = Grid(init_opts=opts.InitOpts(width="1600px", height="800px"))
    grid.add(bar, grid_opts=opts.GridOpts(pos_left="10%", pos_right="60%"))
​
    # 使用 make_snapshot 保存为 PNG
    make_snapshot(snapshot, grid.render(), "fanstuck_data.png")

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台,python,媒体,开发语言,人工智能,AIGC

大家可以不用我这个模板,条形图不太美观,数据维度不匹配,或者就直接展示数据,例如:

import matplotlib.pyplot as plt
from pylab import mpl
from IPython.core.interactiveshell import InteractiveShell
import seaborn as sns
InteractiveShell.ast_node_interactivity = "all"
​
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体
plt.style.use('ggplot')
#mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
​
def display(data):
    # 在画布上添加文本来展示数据
    y_pos = 0.8
    for key, value in data.items():
        plt.text(0.1, y_pos, f"{key}: {value}", fontsize=12, ha='left')
        y_pos -= 0.1
​
    # 移除坐标轴
    plt.axis('off')
​
    # 设置标题
    plt.title('Fanstuck 的腾讯云数据', fontsize=16, pad=20)
​
    # 显示图形
    plt.show()

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台,python,媒体,开发语言,人工智能,AIGC
需要注意的是这里需要加上对汉字兼容,不然会出现方框占位。

API接口开发

之后我们进行API接口开发:该API在访问特定 URL 时返回上述图片,首先,确保你已经安装了 Flask。如果没有安装,可以通过运行 pip install Flask 来安装。

下面是创建这个 Flask 应用的步骤:

  1. 初始化 Flask 应用: 创建一个 Python 文件,比如 app.py,并在该文件中设置 Flask 应用。
  2. 定义路由和视图函数: 在应用中创建一个路由,该路由监听带有参数的 URL 请求。如果参数匹配 “fanstuck”,则返回图片;否则,返回一个错误消息或者其他内容。
  3. 返回图片: 为了返回图片,你可以使用 Flask 的 send_file 方法,该方法允许你发送文件内容作为响应。
# -*- coding:utf-8 -*-
# @Author: fanstuck
# @Time: 2024/3/28 10:23
# @File: app.py
from flask import Flask, send_file, request, abort
​
app = Flask(__name__)
​
@app.route('/image')
def image():
    # 获取 URL 参数
    keyword = request.args.get('keyword', '')
​
    # 检查参数是否为 'fanstuck'
    if keyword.lower() == 'fanstuck':
        # 返回图片
        return send_file('fanstuck_data_visualization.png', mimetype='image/png')
    else:
        # 如果参数不匹配,返回 404 错误
        abort(404)
​
if __name__ == '__main__':
    app.run(debug=True)

现在可以在markdown上面进行测试了:

<img src="http://127.0.0.1:5000/image?keyword=fanstuck" alt="Quiec's github stats" style="zoom: 33%;" />

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台,python,媒体,开发语言,人工智能,AIGC

这些就大工告成了,当然想要追求图片极致美化的也可以尝试更多美化功能,我这里抛砖引玉,用JavaScript排版会更好看一点,那么本期文章就到这里结束了,

每篇文章我都会尽可能将简化涉及到垂直领域的专业知识,转化为大众小白可以读懂易于理解的知识,将繁杂的程序创建步骤逐个拆解,以逐步递进的方式由难转易逐渐掌握并实践,欢迎各位学习者关注博主,博主将不断创作技术实用前沿文章。

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。文章来源地址https://www.toymoban.com/news/detail-845593.html

到了这里,关于如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android:手把手带你入门跨平台UI开发框架Flutter,渣本Android开发小伙如何一步步成为架构师

    3.1 框架结构 Flutter框架主要分为两层:FrameWork层、Engine层,如下图所示: 说明:开发时,主要基于Framework层;运行时,则是运行在 Engine上。每层的具体介绍如下: 3.2 原理概述 开发时,主要基于Framework层;运行时,则是运行在 Engine上 Engine是Flutter的独立虚拟机,由它适配 提

    2024年04月16日
    浏览(71)
  • 手把手教你跑一个UVM_demo(含源码)(一键复现)

    笔记内容对应张强所著的《UVM实战》。该书对UVM使用进行了比较详尽的介绍,并在前言中提供了书籍对应源码的下载网址,是一本带有实操性的书籍,对新手比较友好,推荐阅读。 学习完第二章后,我们对UVM已经有了一个基本概念,但如何在自己的电脑上跑一个UVM deme,让知

    2024年02月09日
    浏览(50)
  • 手把手教你使用Flask框架构建Python接口以及如何请求该接口

    Flask是一个轻量级的Web应用框架,基于Python编写,其核心思想是保持简洁,灵活性和易于扩展。 Flask是一个轻量级的Web应用框架,基于Python编写,其核心思想是保持简洁,灵活性和易于扩展。Flask提供了基本的Web开发工具和应用程序的结构,但同时也允许开发者自由选择其他库

    2024年02月06日
    浏览(107)
  • 手把手教你爬取网站信息

    如题,理解这一部分需要一定的Python基础,有些代码我不做详细解释了,但是用这个方法是确实可以爬到的。 1. 在抓包⼯具中先定位到和浏览器地址栏的⽹址⼀样的数据包 ①在页面中右击鼠标,点击检查,博主这里用的是Google浏览器 ②在弹出来的页面中点击Network,然后再重

    2024年02月02日
    浏览(42)
  • 手把手搭建KVM云平台(详细教学)

    1.点击“文件”,选择“新建虚拟机”。 2.选择“自定义(高级)”,点击“下一步”。 3.硬件兼容性选择“Workstation 16.x”,点击“下一步”。 4.选择“稍后安装操作系统”,点击“下一步”。 5.操作系统选择“Linux(L)”,版本选择“CentOS 7 64位”,点击“下一步”。 6. 自

    2024年02月02日
    浏览(50)
  • 最新类ChatPDF及AutoGPT开源18大功能平台——闻达手把手超详细环境部署与安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型LLM调用平台

    今天,我试用了 闻达开源LLM调用平台 。这一框架拥有类AutoGPT和ChatPDF的功能,能根据一句简短的提示自动生成提纲,然后按照提纲自动填充每章内容,使得论文或小说的写作变得更加高效。此外,它能够导入相关知识库,并通过调用知识库查询相关信息,这项技术更加令人叹

    2024年02月04日
    浏览(49)
  • 手把手教你玩物联网(二)---onenet云平台产品创建

    《手把手教你玩物联网》系列推文将介绍使用RT-Thread----小而美的物联网操作系统,制作一个室内温湿度数据采集,并实现终端采集数据上传物联网云平台onenet,实现云端远程数据监控功能。       上期介绍了ESP8266的使用(手把手教你玩物联网(一)---ESP8266软件包的使用),今

    2024年02月07日
    浏览(54)
  • 【Java】手把手教你写学生信息管理系统(窗口化+MYSQL)

                (本项目使用到了数据库的可视化软件DataGrip,需要同学们自行下载并配置环境) 首先我们需要在DataGrip中建立一个student的框架                                                         然后建立一个studenttable表                   

    2024年02月04日
    浏览(41)
  • Android:手把手带你入门跨平台UI开发框架Flutter

    定义:一款Google出品开源的移动客户端UI开发框架(SDK) 作用:用一套代码同时在Android、iOS上快速构建高质量、高性能的原生用户界面 开发语言:Dart语言(高开发效率、高性能等) 2. 特点 Flutter的主要特点包括:使用自身的高性能渲染引擎进行渲染 Dart编程语言语言 具体介

    2024年04月13日
    浏览(68)
  • 手把手教你用SQLServer连接Visual Studio2019并编写一个学生信息管理页面

    目录 安装SQLServer 创建新项目 建数据库建表 窗体设计 代码实现  整体效果 ​ 用SQLServer连接Visual Studio,首先需要下载SQLServer app。 下载教程,我之前写过,可以点击如下链接先下载安装SQLServer: SQL Server(express)安装教程 安装好SQL之后,打开VisualStudio2019,新建一个window项目 ,步

    2024年02月12日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包