手撕CSDN博文:学用curl命令获取博文页面源码,学不会爬虫先手剥CSDN博文阅读点赞收藏和评论数量

news2024/9/27 17:31:01

学用curl命令获取博文页面源码,学不会爬虫先手剥CSDN博文阅读点赞收藏和评论数量。


(本文获得CSDN质量评分【xx】)

【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……

    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


学用curl命令获取博文页面源码
批量收集CSDN博文阅读量
(学不会爬虫先手剥CSDN博文阅读点赞收藏)


本笔记正在编辑……
请您期待她长成的样子!

本文质量分:

xx
本文地址: https://blog.csdn.net/m0_57158496/article/details/128874661

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆批量收集CSDN博文阅读量
    • 1、curl url > filename
      • 1.1 保存获取页面源码文本
      • 1.2 将源码文本读入内存
    • 2、抽丝剥茧
      • 2.1 re.findall剥离数据
      • 2.2 格式化输出
      • 2.3 打开网页报错拦截
    • 3、博文试炼
      • 3.1 佬的文章
      • 3.1 我的笔记
    • 4、兑付期望
      • 3.1
    • 5、源码


◆批量收集CSDN博文阅读量


1、curl url > filename

  偶得Linux页面源码获取命令curl,可以用>命令将页面源码写入磁盘文件。

1.1 保存获取页面源码文本


1.2 将源码文本读入内存

在这里插入图片描述


    为避免笔记不过审,代码屏蔽了re条件表达式源码。完成源码已上传CSDN文库,正在审核中……


回页目录

2、抽丝剥茧

  

2.1 re.findall剥离数据


2.2 格式化输出


2.3 打开网页报错拦截

  • “302”报错码

  302 Found,原始描述短语为 Moved Temporarily ,是HTTP协议中的一个状态码(Status Code)。可以简单的理解为该资源原本确实存在,但已经被临时改变了位置;换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指示,该状态码不可缓存。

  • “404”报错码

  404,是一种HTTP状态码,指网页或文件未找到。\n\n{’’:>4}HTTP 404或Not Found错误信息是HTTP的其中一种“标准回应信息”(HTTP状态码),此信息代表客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应且不知原因。

  • 无效Url报错

  无效地址报错。比如空白字符串’’、’ '。


错误代码捕捉代码


def html_error(text_html):
    ''' 获取博文页面源码错误提示 '''

    if not text_html: # 获取博文页面源码为空。
        tip = f"{'':>13}请核查Url拼写是否正确!"
        input(f"\n{'':~^50}\n{' Url错误!':^47}\n{'':~^50}\n\n{tip:>4}\n{'':-^50}\n{' 任意键继续…… ':^45}")
        return
    else:
        flag = ''.join(re.findall(r'\d+', text_html))[:3]

    # 找不至网页报错。
    if flag == '302' :
        tip = f"{'':>4}302 Found,原始描述短语为 Moved Temporarily ,是HTTP协议中的一个状态码(Status Code)。可以简单的理解为该资源原本确实存在,但已经被临时改变了位置;换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指示,该状态码不可缓存。"
        input(f"\n{'':~^50}\n{' “302”错误!':^47}\n{'':~^50}\n\n{tip:>4}\n{'':-^50}\n{' 任意键继续…… ':^45}")
        return
    elif flag == '404' :
        tip = f"\n{'':>4}404,是一种HTTP状态码,指网页或文件未找到。\n\n{'':>4}HTTP 404或Not Found错误信息是HTTP的其中一种“标准回应信息”(HTTP状态码),此信息代表客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应且不知原因。"
        input(f"\n{'':~^50}\n{' “404”错误!':^47}\n{'':~^50}\n\n{tip:>4}\n{'':-^50}\n{' 任意键继续…… ':^45}")
        return

    return True # 正常获取博文页面源码,返回真。

报错截屏图片
在这里插入图片描述
在这里插入图片描述
空字符串地址报错
在这里插入图片描述


回页目录

3、博文试炼

在这里插入图片描述
在这里插入图片描述
测试博文地址csv文本内容

<font size=2 color=>Url\Title\Url_type
https://blog.csdn.net/qq_44907926/article/details/124723414\《Python全栈系列教程》目录\博文原始地址
https://blog.csdn.net/qq_44907926/article/details/128956704\小说爬取数据入MySql\博文原始地址
https://blog.csdn.net/qq_44907926/article/details/128847035\小说爬取来深入学习CrawlSpider\博文原始地址
https://blog.csdn.net/guorui_java/article/details/129213073\DevOps是什么?DevOps能够给我们带来什么?\博文原始地址
https://blog.csdn.net/weixin_53197693/article/details/129227659\计算机组成原理(1)–计算机系统概论\博文原始
https://blog.csdn.net/zhangcongyi420/article/details/128512975\k8s中常用调度策略的详解\博文原始地址
https://blog.csdn.net/zhangay1998/article/details/129050922\【开发游戏时如何操控 游戏打击感?利用好Feel插件可快速提升游戏感】\博文原始地址
https://blog.csdn.net/szullc/article/details/123909932\基于N32G457和RT-Thread全新打造的私有化定制家用式智能告警系统(2022年国民技术MCU&RT-Thread设计大赛第一名作品)\博文原始地址
https://blog.csdn.net/weixin_66436111/article/details/129203289\基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网运行策略研究(Matlab代码实现)\博文原始地址
http://t.csdn.cn/LFVED\python 字典解析式_Python解析式\CSDN菜单分享地址
https://blog.csdn.net/weixin_39580124/article/details/112904573\python 字典解析式_Python解析式\博文原始地址
https://dream.blog.csdn.net/article/details/129221789\华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典\博文原始地址
https://dream.blog.csdn.net/article/details/12922179\ \故意写错地址
https://blog.csdn.net/weixin_55822277/article/details/128282870\Python编程零基础如何逆袭成为爬虫实战高手之《WIFI破解》(甩万能钥匙十条街)爆赞爆赞\博文原始地址
https://blog.csdn.net/guo_qingxia/article/details/113979135\正则表达式\博文原始地址
http://t.csdn.cn/MqfLg\正则表达式\CSDN分享地址
https://blog.csdn.net/m0_57158496/article/details/129203378\人工智能AI威武\博文原始地址
https://blog.csdn.net/m0_57158496/article/details/129162023\我的零分周赛\博文原始地址
https://blog.csdn.net/m0_57158496/article/details/128977545\求解最大公约数\博文原始地址
https://blog.csdn.net/m0_57158496/article/details/128874661\茶杯\博文原始地址
https://blog.csdn.net/m0_57158496/article/details/128608287\两数之和\博文原始地址
\空白地址(一个英文空格)\检验程序健壮用
https://blog.csdn.net/weixin_52632755/article/details/122983805\【C语言】一篇速通结构体\博文原始地址
https://le-yi.blog.csdn.net/article/details/128838201\解数独\博文原始地址

  
  

3.1 佬的文章


3.1 我的笔记


4、兑付期望

  我一直都有不定时统计CSDN博文笔记阅读量,从大家的认可度来衡量我对“知识点”的识记程度和“输入→输出”的转化率,以此来“自我肯定”。😊  当笔记记得多了,一条条查阅,也是件费神的事儿。老想要“自动”,但以我目前的水准,总看不懂爬虫,无法践行。经过对笔记页面源码“手撕”,让我看到了“自动”的希望。

3.1



回页目录

  

5、源码

  为避免笔记不过审,贴出的源码略去了re提取博文信息数据的表达式。完整源码已传CSDN资源文库,有需要可以点击我的主页进入资源列表页面查阅。

(源码较长,点此跳过源码)

#!/sur/bin/nve python
# coding: utf-8
import os
import re


def get_article_info(blog):
    ''' 提取CSDN博客文章访问量等信息,返回各项信息格式化字符串元组 '''
    blog = text_html # 变量别名。
    
    # re.findall方法提取各项信息。
    title = '\n\n标题:' + ''.join(re.findall(r'条件表达式略', text_html))
    url = '\n地址:' + ''.join(re.findall(r'条件表达式略', text_html)).strip()
    articleDesc = '\n摘要:' + ''.join(re.findall(r'条件表达式略', text_html))

    if re.findall(r'\w', articleDesc[-1]): # 句末无标点,加句号。
        articleDesc += '。'

    nike = ''.join(re.findall(r'条件表达式略', text_html))
    first = ''.join([''.join(i) for i in re.findall(r'条件表达式略', text_html)])
    late = ''.join([''.join(i) for i in re.findall(r'条件表达式略', text_html)])
    
    if first and late: # 拼接博文编辑信息。
        edit = f"\n{nike}{first},{late}。"
    elif first and not late:
        edit = f"\n{nike}{first}。"
    else:
        edit = ''

    read = '\n阅读:' + ''.join(re.findall(r'<span class="read-count">(\d+)</span>', text_html))
    active = re.findall(r'条件表达式略', text_html)
    active = '\n' + '\n'.join([f"{y}:{x}" if x else f"{y}:0" for x,y in active]) # 格式化博文的点赞、踩、收藏、打赏、评论信息。

    return title, articleDesc, url, '\n作者:' + nike, edit, read, active # 返回提取的信息数据元组。


def html_error(text_html):
    ''' 获取博文页面源码错误提示 '''

    if not text_html: # 获取博文页面源码为空。
        tip = f"{'':>13}请核查Url拼写是否正确!"
        input(f"\n{'':~^50}\n{' Url错误!':^47}\n{'':~^50}\n\n{tip:>4}\n{'':-^50}\n{' 任意键继续…… ':^45}")
        return
    else:
        flag = ''.join(re.findall(r'\d+', text_html))[:3]

    # 找不至网页报错。
    if flag == '302' :
        tip = f"{'':>4}302 Found,原始描述短语为 Moved Temporarily ,是HTTP协议中的一个状态码(Status Code)。可以简单的理解为该资源原本确实存在,但已经被临时改变了位置;换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指示,该状态码不可缓存。"
        input(f"\n{'':~^50}\n{' “302”错误!':^47}\n{'':~^50}\n\n{tip:>4}\n{'':-^50}\n{' 任意键继续…… ':^45}")
        return
    elif flag == '404' :
        tip = f"\n{'':>4}404,是一种HTTP状态码,指网页或文件未找到。\n\n{'':>4}HTTP 404或Not Found错误信息是HTTP的其中一种“标准回应信息”(HTTP状态码),此信息代表客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应且不知原因。"
        input(f"\n{'':~^50}\n{' “404”错误!':^47}\n{'':~^50}\n\n{tip:>4}\n{'':-^50}\n{' 任意键继续…… ':^45}")
        return

    return True # 正常获取博文页面源码,返回真。

if __name__ == '__main__':
    
    # ↓ 此为程序功用微调语句
    with open('/sdcard/Documents/csdn_get_bloghtml.txt') as f:
        text_html = f.read()

    input(f"\n获取的博文信息元组:\n\n{get_article_info(text_html)}\n") 
    # ↑ 此为程序功用微调语句

    # CSDN博文Url的csv文本文件存储路径。可以用相对路径,但一定要保证执行的py文件和保存CSDN博文Url的文本文件在同一目录,且要先cd到该目录再执行python *.py命令,启动捕获CSDN博文信息作业。
    filename = '/sdcard/Documents/csdn_blogurl.txt'

    # 从csv文本解析博文网址,打印从csv文本解析出的CSDN博文Url。
    with open(filename) as f:
        blogurl = [i.split('\\')[0] for i in f.read().split('\n')[1:]]

    print(f"\nCSDN博文Url列表:\n\n{blogurl}\n\n{'测试列表中':9}{len(blogurl)}个CSDN博文页面。\n") # 打印CSDN博文Url列表。

    for url in blogurl: # 遍历Url列表,依次捕获博文网页源码文本,保存到本地磁盘。
        print(f"\nUrl:{url}\n")
        os.system(f"curl {url} > /sdcard/Documents/csdn_get_bloghtml.txt")

        with open('/sdcard/Documents/csdn_get_bloghtml.txt') as f: # 读取保存的博文页面源码文本。
            text_html = f.read().split(r'"target="_blank">')[0]

        if not html_error(text_html): # 获取博文页面源码查错。
            continue
        
        blog_info = get_article_info(text_html) # 调用函数,从博文源码提取信息。
        #input(f"\n获取的博文信息元组:\n\n{blog_info}\n") # 程序功用微调语句。
        print('\n'.join(blog_info)) # 打印当前博文信息。
        print(f"\n{' 我是分割线 ':~^45}\n") # 分割线。


回页首

__上一篇:__ 我的零分周赛(CSDN周赛第30期,成绩“0”分,天然气定单、小艺读书、买苹果🍎、圆桌)
__下一篇:__ 

我的HOT博:

    • New:ChatGPT初体验(ChatGPT国内镜像站初体验,聊天、Python代码生成。)CSDN质量分92。(30687阅读)
    • 尼姆游戏(彩色文字界面版,\033控制码实现。Linux系统有效。)CSDN质量分xx。(1001阅读)
    • 神奇的 \033 ,让打印出彩(1739阅读)
    • 小炼二维数组(1764阅读)
    • 仿真模拟福彩双色球(2622阅读)
    • Python之魔幻切片(1417阅读)
    • 数列求和a, aa, aaa, ..., aa...aa(n个a)(1729阅读)
    • 个人信息提取(2671阅读)
    • 中文字符命名Python变量和函数(1021阅读)
    • 我的Python学习笔记(1021阅读)
    • 十六进制字符串转Python代码(utf-8字符串转十六进制字符串)(1319阅读)
    • 生成100个随机正整数(2489阅读)
    • 给定字符串提取姓名(字符串、list、re“零宽断言”)(1842阅读)
    • 我的 Python.color() (Python 色彩打印控制)(2370阅读)
    • python清屏(3150阅读)
    • 回车符、换行符和回车换行符(3558阅读)
    • Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义(2301阅读)
    • random.sample()将在python 3.9x后续版本中被弃用(2045阅读)
    • pandas 数据类型之 Series(1809阅读)
    • 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )(2332阅读)
    • 练习:银行复利计算(用 for 循环解一道初中小题)(2159阅读)
    • pandas 数据类型之 DataFrame(5932阅读)
    • 班里有人和我同生日难吗?(蒙特卡洛随机模拟法)(2921阅读)
    • Python 续行符(\)“拯救”你的超长语句(1502阅读)
    • Python字符串居中显示(4684阅读)
    • 练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)(2331阅读)
    • 用 pandas 解一道小题(2268阅读)
    • 可迭代对象和四个函数(1752阅读)
    • “快乐数”判断(1847阅读)
    • 罗马数字转换器(构造元素取模)(3157阅读)
    • Hot:罗马数字(转换器|罗生成器)(5783阅读)
    • Hot:让QQ群昵称色变的代码(49777阅读)
    • Hot:斐波那契数列(递归| for )(4719阅读)
    • 柱状图中最大矩形(2348阅读)
    • 排序数组元素的重复起止(1964阅读)
    • 电话拨号键盘字母组合(2170阅读)
    • 密码强度检测器(3124阅读)
    • 求列表平衡点(2498阅读)
    • Hot:字符串统计(4581阅读)
    • Hot:尼姆游戏(聪明版首发)(4135阅读)
    • 尼姆游戏(优化版)(1968阅读)

    • 推荐条件 点阅破千


      回页首


      老齐漫画头像

      精品文章:

      • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
      • OPP三大特性:封装中的property
      • 通过内置对象理解python'
      • 正则表达式
      • python中“*”的作用
      • Python 完全自学手册
      • 海象运算符
      • Python中的 `!=`与`is not`不同
      • 学习编程的正确方法

      来源:老齐教室


      回页首

      ◆ Python 入门指南【Python 3.6.3】


      好文力荐:

      • 全栈领域优质创作者——寒佬(还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是学习的两大利器。

      • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛

      • 靠谱程序员的好习惯


      CSDN实用技巧博文:

      • 8个好用到爆的Python实用技巧
      • python忽略警告
      • Python代码编写规范
      • Python的docstring规范(说明文档的规范写法)

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

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

    相关文章

    客户服务软件推荐榜:28款!

    在这个竞争激烈的时代&#xff0c;做到服务对企业的存亡有着深刻的意义。改善客户服务&#xff0c;做好客户服务工作&#xff0c;是关键&#xff0c;因为客户服务团队代表着企业的形象&#xff0c;面孔&#xff0c;客户有可能 不大会记得企业的某个东西&#xff0c;但是他们将会…

    module java.base does not “opens java.xxx“ to unnamed module @xxxx

    错误截图 在springboot集成dubbo中 消费者服务和生产者复核都报错 错误原因 高版本JDK禁止了报错所提示的几个包的反射 而dubbo里用到了 解决 看自己的报错里有几个包被禁止了 我这有两个java.math和java.lang 添加两个JVM启动参数 –add-opens java.base/java.mathALL…

    Python爬虫之Scrapy框架爬虫实战

    Python爬虫中Scrapy框架应用非常广泛&#xff0c;经常被人用于属于挖掘、检测以及自动化测试类项目&#xff0c;为啥说Scrapy框架作为半成品我们又该如何利用好呢 &#xff1f;下面的实战案例值得大家看看。 目录&#xff1a; 1、Scrapy框架之命令行 2、项目实现 Scrapy框架…

    安卓手机当旁路网关

    一、安卓shell调试工具下载【电脑版下载地址】安卓adb调试工具&#xff0c;包含MAC苹果、Windows和Linux 三种版【手机版下载地址Termux】下载地址&#xff1a;https://github.com/termux/termux-app/releases如果不懂下载哪个版本&#xff0c;可以直接下载通用版&#xff1a;t…

    Jackson CVE-2017-7525 反序列化漏洞

    0x00 前言 Jackson 相对应fastjson来说利用方面要求更加苛刻&#xff0c;默认情况下无法进行利用。 同样本次的调用链也可以参考fastjson内容&#xff1a;Java代码审计——Fastjson TemplatesImpl调用链 相关原理&#xff0c;可以参考&#xff1a;Jackson 反序列化漏洞原理 …

    基于Java+SpringBoot+Vue+Uniapp(有教程)前后端分离健身预约系统设计与实现

    博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战✌ 博主作品&#xff1a;《微服务实战》专栏是本人的实战经验总结&#xff0c;《Spring家族及…

    6款yyds的可视化搭建开源项目

    之前我一直在研究低代码可视化相关的技术和产品, 也主导过很多可视化搭建项目, 主要目的是降低企业研发成本和缩短产品交付周期, 随着互联网技术的发展也陆陆续续有很多优秀的技术产品问世, 接下来我就和大家分享几款非常有价值的可视化搭建项目, 助力企业数字化转型. 1. Form…

    轻松搞懂Linux中的用户管理

    文章目录概念用户账户用户组用户权限用户管理工具概念 用户管理是Linux系统管理员必须掌握的重要技能之一。Linux系统是一个多用户操作系统&#xff0c;可以支持多个用户同时使用&#xff0c;每个用户拥有自己的账户和权限&#xff0c;因此管理员需要了解如何创建、管理和删除…

    当参数调优无法解决kafka消息积压时可以这么做

    今天的议题是&#xff1a;如何快速处理kafka的消息积压 通常的做法有以下几种&#xff1a; 增加消费者数增加 topic 的分区数&#xff0c;从而进一步增加消费者数调整消费者参数&#xff0c;如max.poll.records增加硬件资源 常规手段不是本文的讨论重点或者当上面的手段已经使…

    vue 在install时候node-sass@4.14.1 postinstall: node scripts/build.js错误

    今天重装了node和Vue脚手架&#xff0c;在install的时候报了下面的错误 报错如下&#xff1a; Build failed with error code: 1 [npminstall:runscript:error] node-sass^4.14.1 run postinstall node scripts/build.js error: Error: Command failed with exit code 1: node…

    Allegro如何输出钻孔表操作指导

    Allegro如何输出钻孔表操作指导 用Allegro做PCB设计的时候,需要输出钻孔表格,用于生产加工,如下图 如何输出钻孔表,具体操作如下 点击Manufacture点击NC

    面试问题【集合】

    集合常见的集合有哪些List、Set、Map 的区别ArrayList 和 Vector 的扩容机制Collection 和 Collections 有什么区别ArrayList 和 LinkedList 的区别是什么ArrayList 和 Vector 的区别是什么ArrayList 和 Array 有何区别ArrayList 集合加入1万条数据&#xff0c;应该怎么提高效率…

    全面了解 B 端产品设计 — 基础扫盲篇

    在今天,互联网的影响力与作用与日俱增,除了我们日常生活领域的改变以外,对于商业领域的渗透也见效颇丰。 越来越多的企业开始使用数字化的解决方案来助力企业发展,包括日常管理、运营、统计等等。或者通过互联网的方式开发出新的业务形态,进行产业升级,如这几年风头正劲的…

    WMS相关知识点

    目录一、WMS简介二、窗口的分类三、添加Window一、WMS简介 Window&#xff1a;在Android视图体系中Window就是一个窗口的概念。Android中所有的视图都是依赖于Window显示的。 Window是一个抽象的概念&#xff0c;它对应屏幕上的一块显示区域&#xff0c;它不是实实在在的内容&…

    大学生实践| 微软ATP“师徒制”AI实战项目收获满满!

    ChatGPT在极短时间内掀起了一轮AI狂潮&#xff0c;AI数据、AI大模型、AIGC……对我们AI实践项目感兴趣的同学也越来越多&#xff01;微软(亚洲)互联网工程院下属的微软ATP为大学生们提供了丰富的企业级实践项目。2个月内&#xff01;本期优秀的Chen同学在微软AI工程师团队带领下…

    研报精选230301

    目录 【行业230301天风证券】家用电器23W9周度研究&#xff1a;一图解读立达信招股说明书【行业230301财信证券】风电设备行业深度&#xff1a;受益大兆瓦、国产替代和技术进步&#xff0c;风电轴承or滚子有望迎来高景气度【行业230301中泰证券】有色金属行业周报&#xff1a;静…

    composer安装thinkphp

    人家的官方文档上步骤都有了&#xff0c;按照步骤走就行 安装composer 不作赘述 附一个文档链接&#xff1a; 安装 ThinkPHP5.1完全开发手册 看云 主要说一个自己踩过的坑吧 composer create-project topthink/think5.1.* tp5 在输入这个命令以后提示 [Composer\Downl…

    git repack多包使用及相关性能测试

    1、git数据结构 git 中存在四种数据结构&#xff0c;即object包含四种&#xff0c;分别是tree对象、blob对象、commit对象、tag对象 1.1 blob对象 存储文件内容&#xff0c;内容是二进制的形式&#xff0c;通过SHA-1算法对文件内容和头信息进行计算得到key(文件名)。 如果一…

    一款优秀的低代码开发平台是什么样的?

    目录 一、一款优秀的低代码平台应该是什么样的&#xff1f; 二、低代码核心能力 01、全栈可视化编程&#xff1a; 02、全生命周期管理&#xff1a; 03、低代码扩展能力&#xff1a; 三、小结 一、一款优秀的低代码平台应该是什么样的&#xff1f; 从企业角度来说&#x…

    模拟QQ登录-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)

    【案例11-3】 模拟QQ登录 【案例介绍】 1.案例描述 QQ是现实生活中常用的聊天工具&#xff0c;QQ登录界面看似小巧、简单&#xff0c;但其中涉及的内容却很多&#xff0c;对于初学者练习Java Swing工具的使用非常合适。本案例要求使用所学的Java Swing知识&#xff0c;模拟实…