Java实现 历史上的今天

网页爬虫--历史上的今天 网页爬虫–历史上的今天上篇博客中我们知道了,调用第三方的API获得我们想要的数据,如果我们要的数据没有现成的API怎么办?那就需要我们去网站上爬数据了。下面就教大家怎么去网页上爬我们需要的数据。一.使用Java JDK中的工具自己实现HTTP和HTTPS请求写一个HttpUtils 工具类:package org.sunming.util;import java.io.BufferedReader; 阅读详情

一、controller层

package com.hd.history.controller;
import com.hd.history.dto.HistoryDto;
import com.hd.history.entity.History;
import com.hd.history.service.HistoryService;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/findHistoryday")
public class HistoryController {
    @Autowired
    private HistoryService historyService;
      @Scheduled(cron = "0 0 7 1 * ? ")//定时每个月1号7点执行一次
    public void getHistoryMonthDay() throws IOException {
        Integer[] dayNumber = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        //循环每一天
        for (int i = 1; i <= 12; i++) {
            for (int j = 1; j <= dayNumber[i - 1]; j++) {
                getgetHistoday(i, j);
            }
        }
    }
    public void getgetHistoday(Integer month, Integer day) throws IOException {
    //爬虫目标源网页的url路径要求不够10的0补齐
        String monthDay = "";
        String monthNumber = String.valueOf(month);
        String dayNumber = String.valueOf(day);
        if (month < 10) {
            monthNumber = "0" + month;
        }
        if (day < 10) {
            dayNumber = "0" + day;
        }
        monthDay = monthNumber + dayNumber;
        Document document = Jsoup.connect("http://hao.360.com/histoday/" + monthDay + ".html").get();
        Element body = document.body();
        Elements lie12 = body.getElementsByClass("tih-item");
        List<History> historyList = new ArrayList<>();
        //这方面我们主要需要三个数据 标题图片和具体内容
        for (Element element : lie12) {
            //导入标题
            Elements titleData = element.select("dt");
            String title = titleData.text();
            //导入图片
            Elements imageData = element.getElementsByClass("item-img");
            String image = imageData.attr("src");
            String imageNumber = imageData.attr("data-src");
            String imageUrl = "";
            if (null!=imageNumber&&imageNumber!=""){
                imageUrl = "http:" + imageNumber;
            }else if (null != image && image != "") {
                imageUrl = "http:" + image;
            }

            //具体内容
            Elements contentData = element.getElementsByClass("desc");
            String content = contentData.text();
            History history = new History();
            history.setTitle(title);
            history.setImg(imageUrl);
            history.setContent(content);
            historyList.add(history);
        }
        String finalMonthDay = monthDay;
        historyList.forEach(history -> history.setHistoryDate(finalMonthDay));
        historyService.insertHistory(historyList);
    }
    //查找接口
    @PostMapping("/getHistoryDay")
    public List<History> getHistoryList(@RequestBody HistoryDto historyDto) {
        return historyService.getHistoday(historyDto);
    }
}

二、service层

package com.hd.history.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hd.history.dto.HistoryDto;
import com.hd.history.entity.History;
import com.hd.history.mapper.HistoryMapper;
import com.hd.history.service.HistoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class HistoryServiceImpl implements HistoryService {
    @Autowired
    private HistoryMapper historyMapper;

    @Override
    public List<History> getHistoday(HistoryDto historyDto) {
        QueryWrapper<History> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(History::getHistoryDate, historyDto.getHistoryDate());
        List<History> histories = historyMapper.selectList(queryWrapper);
        return histories;
    }
//采取的是先删除在插入,因为不好考虑唯一索引,而且整体删除也用不了多少时间
    @Override
    public void insertHistory(List<History> historyList) {
        findHistory(historyList.get(0).getHistoryDate());
        for (History history : historyList) {
            historyMapper.insert(history);
        }
    }

    public void findHistory(String historyDate) {
        QueryWrapper<History> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(History::getHistoryDate, historyDate);
        List<History> histories = historyMapper.selectList(queryWrapper);
        if (histories.size() > 0) {
            historyMapper.delete(queryWrapper);
        }
    }
}

三、entity层

package com.hd.history.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
@Data
@TableName("hd_history")
public class History implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String historyDate;
    private String title;
    private String img;
    private String content;
}

四、pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.hd.history</groupId>
    <artifactId>maven-history</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>maven_history</name>
    <description>Demo project for Spring Boot</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
        <cloud.version>Hoxton.RELEASE</cloud.version>
        <cloud.alibaba.version>0.2.2.RELEASE</cloud.alibaba.version>
        <gmall.version>1.0</gmall.version>
        <mybatis-plus.version>3.0.5</mybatis-plus.version>
        <mysql.version>5.1.46</mysql.version>
        <swagger.version>2.7.0</swagger.version>
        <fastdfs.version>1.27.0.0</fastdfs.version>
        <lombok.version>1.18.10</lombok.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>0.2.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--mybatis-plus 持久层-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>


        <!-- jsoup HTML parser library @ http://jsoup.org/ -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.11.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

五、application.properties

# 服务端口
server.port=8088
# 服务名
spring.application.name=maven-history

# 环境设置:dev、test、prod
spring.profiles.active=dev

# mysql数据库连接
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/media?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&useServerPrepStmts=true&allowMultiQueries=true

spring.datasource.username=root
spring.datasource.password=root
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

六、表结构

DROP TABLE IF EXISTS `hd_history`;
CREATE TABLE `hd_history`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `history_date` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '当前日期',
  `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '标题',
  `img` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图像',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '内容',
  PRIMARY KEY (`id`) USING BTREE
)

七、爬取的网页HTML

<dl class="tih-item open"> 
  <dt>
   <em>1</em>. 1981年-我国正式实行学位制度
  </dt> 
  <dd> 
   <img class="item-img" src="//p7.qhmsg.com/t01fd70f46cc423a8d7.jpg"> 
   <div class="clearfix"> 
    <div class="desc">
      1981年1月1日,我国正式实行学位制度。我国从50年代开始,就试图建立学位制,因受极“左”思潮的影响和“文革”的干扰,一直未能实行。1976年,教育部和国务院科技干部局联合组织的学位小组,拟订了《中华人民共和国学位条例(草案)》,经审议修改,1980年2月15日由人大常委会第十三次会议讨论通过。学位制规定,我国设学士、硕士、博士3级学位。这些当时还看不出分量的名称后来却极大地规范了人才选拔制度。 
    </div> 
    <div class="right-btn-container"> 
     <a href="http://baike.so.com/doc/6222143.html" target="_blank" class="read-btn">阅读全文</a> 
    </div> 
   </div> 
  </dd> 
 </dl> 
 <dl class="tih-item"> 
  <dt>
   <em>2</em>. 1814年-太平天国农民起义领袖洪秀全诞辰
  </dt> 
  <dd> 
   <img class="item-img" data-src="//p8.qhmsg.com/t014369be2b3746e6d2.jpg" src="//hao3.qhimg.com/t0194aea54158184820.gif"> 
   <div class="clearfix"> 
    <div class="desc">
      洪秀全(1814年1月1日-1864年6月1日),原名洪仁坤,小名火秀,客家人,是太平天国以宗教名义发动民变的领袖。清嘉庆十八年十二月初十生于广东花县(今广州市花都区)福源水村,后来移居到官禄布村。道光年间屡应科举不中,遂吸取早期基督教义中的平等思想,创立拜上帝会,撰《原道救世歌》以布教,主张建立远古“天下为公”盛世。道光三十年十二月初十(1851年1月11日)洪秀全发动金田起义,建国号太平天国,自称天王。1853年以南京作为首都,改名天京,1864年在天京病逝,太平天国在他死后不久灭亡。 
    </div> 
    <div class="right-btn-container"> 
     <a href="http://baike.so.com/doc/4371050.html" target="_blank" class="read-btn">阅读全文</a> 
    </div> 
   </div> 
  </dd> 
 </dl> 

总结

爬虫Jsoup这方面的知识以前从未接触过,通过实现(历史上的今天)学到了很多,解决问题的话需要静下心来,一个一个的去探索发掘。

历史上的今天查询(源码) 可以查询历史上的今天,一个网页的源码+数据库 立即下载

相关推荐

历史上的今天 数据库

将近一万条数据,txt文件格式,还有MS SQL数据库文件。

15、历史上的今天API接口,免费好用

1、前言 历史上的今天接口,这个是RollToolsApi通用系列接口的其中一个,内部包含了1个小接口,能获取已经收录的历史上的今天的所有数据。数据会定时更新。 查看接口完整信息:https://www.mxnzp.com/doc/detail?id=18 RollToolsApi通用系列接口包含多很多免费通用的API接口,利用这些接口可以帮你实现去开发出很多功能丰富,服务稳定的小程序,APP或者网页,无论是练手还是实战都是不错的选择。所有接口的列表可以在此查看 https://www.mxnzp.com/

roll圈圈的博客 3058

历史上的今天

使用phonegap编写的小程序,查看某月某日的事件列表

历史上的今天API接口,免费好用

历史上的今天API接口,免费好用

畅联聚合支付的博客 2056

汇川机器人与PLC通信-ModbusTCP超详细案例

通过汇川机器人与PLC的ModbusTCP通信项目案例,我们可以了解通讯配置的过程,地址映射的方式,对接信号的转换,运行时序的逻辑等注意事项,帮助我们快速应用到项目中。

weixin_44166380的博客 1万+

Fluent 2.5D动网格重构实战:涡旋压缩机复杂运动模拟指南

本文详细解析了Fluent 2.5D动网格重构技术在涡旋压缩机复杂运动模拟中的应用。通过对比传统方法,2.5D重构显著提升了计算效率和稳定性,特别适用于柱体类几何的网格处理。文章提供了从基础配置到参数优化的实战指南,包括关键设置步骤、常见问题排查及性能优化策略,帮助工程师有效解决动网格重构中的负体积和网格畸变问题。

weixin_28455801的博客 548

Java爬虫实践之获取历史上的今天

概述 我们可以在一些网站上看到一些文字,显示了历史上的今天发生了什么事情。例如优快云的登录页面: 而我们今天的目标是百度搜索上显示的历史上的今天,如下: 我们需要获取“历史上的今天”的所有事件,然后可以把这些数据显示在自己的网站上,就可以给自己网站上也增加一个“历史上的今天”的功能。 准备 要想使用这个爬虫,需要如下知识: hutool的hutool-http模块 Gson Jsoup 其中hutool-http模块需要用来发送HTTP请求,请求URL,返回服务器的响应结果;而Gson用来处理json

二木成林 2202

GPU加速的容器化AI开发:AnolisOS/CentOS8中的NVIDIA驱动与CUDA最佳实践

本文详细介绍了在AnolisOS/CentOS8系统中配置NVIDIA驱动与CUDA的最佳实践,涵盖驱动安装、CUDA工具链配置、容器运行时设置及性能优化等关键步骤。特别针对容器化AI开发场景,提供了GPU透传和资源管理的实用方案,帮助开发者构建高效的GPU加速开发环境。

weixin_27791839的博客 339

历史上的今天重大事件API

1个免费的帮助你获取历史上的今天重大事件的接口API。

qq_48896417的博客 1262

社会网络仿真软件:NetLogo_(14).社会网络数据导入与导出

在NetLogo中,社会网络的仿真不仅依赖于模型的内部逻辑,还需要能够灵活地导入和导出数据。这使得用户可以利用外部数据来初始化模型,或者将模型的运行结果导出以便进一步分析。本节将详细介绍如何在NetLogo中实现社会网络数据的导入和导出,包括常见的数据格式和具体的代码示例。

kkchenjj的博客 598

PyCharm 怎么不升级直接使用Jupyter Notebook

在PyCharm 中需要升级到 PyCharm Professional 版本,才能直接使用 Jupyter Notebook。从截图来看,Jupyter Notebook 已经成功启动,并且正在运行。这将在默认网络浏览器中打开一个新的标签页,显示文件浏览器界面。可以在这里创建和编辑。文件添加到 PyCharm 项目中,并使用纯文本编辑功能进行修改。支持与外部工具集成,可以配置它以调用命令行工具或脚本来启动。,参数可以根据需要设置,工作目录设置为项目根目录。,你仍然可以在本地环境中安装和运行。

Davina_yu的博客 994

历史上的今天接口php,JavaScript_代码获取历史上的今天发生的事,历史上的今天json接口 ,分享 - phpStudy...

//http://history.sturgeon.mopaas.com //主页//http://history.sturgeon.mopaas.com/jsonp?callback=? //jsonp接口//http://history.sturgeon.mopaas.com/jsonp //json接口//http://history.sturgeon.mopaas.com/jsonp/...

weixin_34560676的博客 401

SCI一区论文投稿终极技巧:Expert Systems With Applications;Knowledge-Based Systems

投稿计算机1区论文(如KBS、ESWA)的核心技巧包括:1)关键词选择需平衡范围与相关性,避免过细或过泛;2)研究内容聚焦单一核心创新点,避免内容分散;3)必须设计消融实验量化创新点的贡献;4)公开实验代码和数据集,确保可验证性;5)合理使用AI工具仅辅助写作,核心内容需自主完成;6)实验数据必须真实可靠。特别强调1区期刊对创新性和实验严谨性的高要求,需避免常见拒稿原因如内容分散、缺乏验证等。这些策略可提高投稿成功率,但前提是研究本身具有实质性创新。

ZhangJiqun&191cm&85kg 1151

历史上的今天(java实现实例)

import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.text.DateFormat; import java.text.Simpl

siyehua的专栏 1307

1.5 RAG技术栈全景图:LangChain vs LlamaIndex深度对比,选错框架后悔3年,一文帮你选对

摘要:LangChain与LlamaIndex框架深度对比 本文全面对比了RAG领域两大主流框架LangChain和LlamaIndex。LangChain是通用AI应用框架,具有模块化设计和丰富生态;LlamaIndex专为RAG优化,提供开箱即用解决方案。功能对比显示,LangChain在文档加载和Agent支持方面更强,而LlamaIndex在检索策略、向量存储和多模态处理上表现更优。代码示例展示了二者实现RAG的不同方式:LangChain需要更多配置但灵活性高,LlamaIndex则提供更简洁的A

yonggeit的博客 3237

低代码部署与管理——OpenClaw智能助手的应用部署与运维(2026技术版)

OpenClaw智能助手的低代码部署与管理平台采用分层架构设计,包含部署工具、环境管理、版本控制等核心模块,支持从开发到生产的全流程自动化部署。该系统通过Docker、Kubernetes等技术实现应用构建和部署,利用Terraform等工具管理多环境配置,并提供完善的监控运维能力。平台针对开发、测试、预生产和生产环境提供差异化配置,确保部署效率和运行可靠性。这种架构设计遵循自动化、可扩展性和安全性原则,显著提升了智能助手应用的部署效率和运维质量。

一键难忘的博客 314

微信开发纪实之历史上的今天服务

微信开发纪实之历史上的今天服务 说明:此篇文章是看了柳峰老师的文章(http://blog.youkuaiyun.com/lyq8479/article/details/12785115)后自己动手写的。相比于柳峰老师的方法,我觉得我的方法有两项优点: 1.        主服务代码量更少(得益于HttpClient和Jsoup) 2.        实现了数据的平滑过渡   语言:java  

莫帮杰的专栏 555

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

历史上的今天——网络爬虫

历史上的今天-网络爬虫学习笔记

andre_wjh的博客 4380

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[040] 微信公众帐号开发教程第16篇-应用实例之历史上的今天

内容概要 本篇文章主要讲解如何在微信公众帐号上实现“历史上的今天”功能。这个例子本身并不复杂,但希望通过对它的学习,读者能够对正则表达式有一个新的认识,能够学会运用现有的网络资源丰富自己的公众账号。 何谓历史上的今天 回顾历史的长河,历史是生活的一面镜子;以史为鉴,可以知兴衰;历史上的每一天,都是喜忧参半;可以了解历史的这一天发生的事件,借古可以鉴今,历史是不能忘记的

似水流年 473

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java微信二次开发之16-通过超链接的重复使用查询历史上的今天发生的历史大事件

本篇文章主要讲解如何在微信公众帐号上实现“历史上的今天”功能。这个例子本身并不复杂,但希望通过对它的学习,读者能够对正则表达式有一个新的认识,能够学会运用现有的网络资源丰富自己的公众账号。 何谓历史上的今天 回顾历史的长河,历史是生活的一面镜子;以史为鉴,可以知兴衰;历史上的每一天,都是喜忧参半;可以了解历史的这一天发生的事件,借古可以鉴今,历史是不能忘记的。查看历史上每天

LanBuff的博客 1620

微信公众帐号开发教程第16篇-应用实例之历史上的今天

内容概要 本篇文章主要讲解如何在微信公众帐号上实现“历史上的今天”功能。这个例子本身并不复杂,但希望通过对它的学习,读者能够对正则表达式有一个新的认识,能够学会运用现有的网络资源丰富自己的公众账号。 何谓历史上的今天 回顾历史的长河,历史是生活的一面镜子;以史为鉴,可以知兴衰;历史上的每一天,都是喜忧参半;可以了解历史的这一天发生的事件,借古可以鉴今,历史是不能忘记的

天之蓝的学习博客 758

二十六:微信公众帐号开发-应用实例之历史上的今天

内容概要 本篇文章主要讲解如何在微信公众帐号上实现“历史上的今天”功能。这个例子本身并不复杂,但希望通过对它的学习,读者能够对正则表达式有一个新的认识,能够学会运用现有的网络资源丰富自己的公众账号。 何谓历史上的今天 回顾历史的长河,历史是生活的一面镜子;以史为鉴,可以知兴衰;历史上的每一天,都是喜忧参半;可以了解历史的这一天发生的事件,借古可以鉴今,历史是不能忘记的

廖伍星的专栏 972

微信公众帐号开发教程第16篇-应用实例之历史上的今天(Java版)

内容概要 本篇文章主要讲解如何在微信公众帐号上实现“历史上的今天”功能。这个例子本身并不复杂,但希望通过对它的学习,读者能够对正则表达式有一个新的认识,能够学会运用现有的网络资源丰富自己的公众账号。 何谓历史上的今天 回顾历史的长河,历史是生活的一面镜子;以史为鉴,可以知兴衰;历史上的每一天,都是喜忧参半;可以了解历史的这一天发生的事件,借古可以鉴今,历史是不能忘记的。查看历史上每天

iShareStudio 1758

历史上的今天大事件查询工具推荐 - 历史上的今天 API

如果你对历史感兴趣,那么历史上的今天 API 肯定是你不可错过的神器!这是一个可以查询历史事件的应用程序编程接口,通过使用它,你可以轻松地获取任何日期发生的重要事件,包括国家大事、国际大事、政府重要决策等等。无论是用于教育、新闻、娱乐还是其他领域,历史上的今天 API 都能够为你提供极大的帮助。

海碗吃饭的博客 1072

“历史上的今天”web网站

今天我们来做一个网站,历史上的今天,相信大家都不陌生,我们可以百度搜一下,有很多这样的网站。 看了上面的截图,我们来实现自己的,此网站是以一种时间轴的方式来实现的。看一下效果图,为了更好的效果,我放的是手机上显示的效果 网站的素材我已经上传到优快云了,大家直接下载即可。 “历史上的今天”html+css+js素材 接下来我们来实现网站 首先,我们要解决的是api的调用的问题 这里给大家推荐一个网站,里面有很多免费的api接口可以调用,大家可以仿造我这个api的调用来调用其他..

毕业势必进大厂的博客 1596

python历史上的今天_历史上的今天

require_once 'curl.func.php';$appkey = 'your_appkey_here';//你的appkey$month = 1;$day = 2;$url = "https://api.jisuapi.com/todayhistory/query?appkey=$appkey&month=$month&day=$day";$result = curlO...

weixin_39981400的博客 289
下一篇: svn项目idea打开 右键不显示Subversion按钮
Gods杰
博客等级 码龄7年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值