Java通过访问url获取json数据

package com.study;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

/**
 * @ClassName HolidayTest
 * @Description TODO
 * @Author Jiangnan Cui
 * @Date 2022/8/28 0:02
 * @Version 1.0
 * 参考链接:https://blog.csdn.net/weixin_33918202/article/details/114098442
 */
public class HolidayTest {
    public static void main(String[] args) {
        String url = "http://timor.tech/api/holiday/year/2022";
        String json = loadJson(url);
        System.out.println("json = " + json);
        /**
         * 输出结果:
         * json = {"code":0,"holiday":{"01-01":{"holiday":true,"name":"元旦","wage":3,"date":"2022-01-01","rest":85},"01-02":{"holiday":true,"name":"元旦","wage":2,"date":"2022-01-02","rest":1},"01-03":{"holiday":true,"name":"元旦","wage":2,"date":"2022-01-03","rest":1},"01-29":{"holiday":false,"name":"春节前补班","after":false,"wage":1,"target":"春节","date":"2022-01-29","rest":14},"01-30":{"holiday":false,"name":"春节前补班","after":false,"wage":1,"target":"春节","date":"2022-01-30","rest":1},"01-31":{"holiday":true,"name":"除夕","wage":2,"date":"2022-01-31","rest":16},"02-01":{"holiday":true,"name":"初一","wage":3,"date":"2022-02-01","rest":1},"02-02":{"holiday":true,"name":"初二","wage":3,"date":"2022-02-02","rest":1},"02-03":{"holiday":true,"name":"初三","wage":3,"date":"2022-02-03","rest":1},"02-04":{"holiday":true,"name":"初四","wage":2,"date":"2022-02-04","rest":1},"02-05":{"holiday":true,"name":"初五","wage":2,"date":"2022-02-05","rest":1},"02-06":{"holiday":true,"name":"初六","wage":2,"date":"2022-02-06","rest":1},"04-02":{"holiday":false,"name":"清明节前补班","after":false,"wage":1,"target":"清明节","date":"2022-04-02","rest":1},"04-03":{"holiday":true,"name":"清明节","wage":2,"date":"2022-04-03","rest":2},"04-04":{"holiday":true,"name":"清明节","wage":2,"date":"2022-04-04","rest":1},"04-05":{"holiday":true,"name":"清明节","wage":3,"date":"2022-04-05","rest":1},"04-24":{"holiday":false,"name":"劳动节前补班","after":false,"wage":1,"target":"劳动节","date":"2022-04-24","rest":1},"04-30":{"holiday":true,"name":"劳动节","wage":2,"date":"2022-04-30","rest":6},"05-01":{"holiday":true,"name":"劳动节","wage":3,"date":"2022-05-01","rest":1},"05-02":{"holiday":true,"name":"劳动节","wage":2,"date":"2022-05-02","rest":1},"05-03":{"holiday":true,"name":"劳动节","wage":2,"date":"2022-05-03","rest":1},"05-04":{"holiday":true,"name":"劳动节","wage":2,"date":"2022-05-04","rest":1},"05-07":{"holiday":false,"name":"劳动节后补班","after":true,"wage":1,"target":"劳动节","date":"2022-05-07","rest":3},"06-03":{"holiday":true,"name":"端午节","wage":3,"date":"2022-06-03","rest":28},"06-04":{"holiday":true,"name":"端午节","wage":2,"date":"2022-06-04","rest":1},"06-05":{"holiday":true,"name":"端午节","wage":2,"date":"2022-06-05","rest":1},"09-10":{"holiday":true,"name":"中秋节","wage":3,"date":"2022-09-10","rest":14},"09-11":{"holiday":true,"name":"中秋节","wage":2,"date":"2022-09-11","rest":1},"09-12":{"holiday":true,"name":"中秋节","wage":2,"date":"2022-09-12","rest":1},"10-01":{"holiday":true,"name":"国庆节","wage":3,"date":"2022-10-01","rest":18},"10-02":{"holiday":true,"name":"国庆节","wage":3,"date":"2022-10-02","rest":1},"10-03":{"holiday":true,"name":"国庆节","wage":3,"date":"2022-10-03","rest":1},"10-04":{"holiday":true,"name":"国庆节","wage":2,"date":"2022-10-04","rest":1},"10-05":{"holiday":true,"name":"国庆节","wage":2,"date":"2022-10-05","rest":1},"10-06":{"holiday":true,"name":"国庆节","wage":2,"date":"2022-10-06","rest":1},"10-07":{"holiday":true,"name":"国庆节","wage":2,"date":"2022-10-07","rest":1},"10-08":{"holiday":false,"after":true,"wage":1,"name":"国庆节后补班","target":"国庆节","date":"2022-10-08"},"10-09":{"holiday":false,"after":true,"wage":1,"name":"国庆节后补班","target":"国庆节","date":"2022-10-09"}}}
         */
    }

    /**
     * 根据请求路径返回json数据
     *
     * @param url 请求接口路径
     * @return
     */
    public static String loadJson(String url) {
        //字符串工具类
        StringBuilder json = new StringBuilder();
        try {
            //链接URL
            URL urlObject = new URL(url);
            //创建连接
            URLConnection uc = urlObject.openConnection();
            //设置请求属性,缺少此语句报错Server returned HTTP response code: 403 for URL
            //参考链接:https://blog.csdn.net/xc9711/article/details/124047530https://blog.csdn.net/xc9711/article/details/124047530
            uc.setRequestProperty("User-Agent", "Mozilla/4.76");
            //读取返回结果集,此处记得设置编码格式为UTF-8,防止中文乱码
            BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(), "utf-8"));
            String inputLine = null;
            while ((inputLine = in.readLine()) != null) {
                json.append(inputLine);
            }
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        //将json数据以字符串的形式进行返回
        return json.toString();
    }
}

                
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您下载了本程序,但是该程序无法运行,或者您不会部署,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
如果您下载了本程序,但是该程序无法运行,或者您不会部署,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
如果您下载了本程序,但是该程序无法运行,或者您不会部署,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值