Linux的自动化脚本:使用crul命令的从某个网站获取数据(从url获取数据),并将其写入一个文件中

发布于:2024-04-26 ⋅ 阅读:(16) ⋅ 点赞:(0)

目录

一、要求

二、思路

三、shell脚本实现演练

(一)脚本实现

(二)脚本代码说明

(三)脚本执行

(四)数据内容


一、要求

       Linux的一个进程需要获取一个网站上的最新数据,根据这些数据,更新自己的网页的一部分内容。如何让linux自动获取网站更新的数据呢?

        使用http的request等指令,可能需要很多语句,也比较复杂。那么,如何选择?采用哪种方式比较便捷呢?

二、思路

        curl linux的一个强大的命令行工具,用于与服务器进行通信,通常用于发送或接收数据。它支持多种协议,如 HTTPHTTPSFTP 等,并且提供了大量的选项来定制请求和响应。在 Linux 中,curl 经常被用于脚本中以自动化网络相关的任务。

        curl的“-s”选项,用于静默模式或称为安静模式。当使用此选项时,curl 不会在屏幕上显示进度信息或错误消息。它只会输出实际请求的内容。

        因此我们可以采用这个方法,把获取到网站的内容写入到一个文件中,然后给其他进程来使用。

三、shell脚本实现演练

(一)脚本实现

        如下展示如何使用在bash脚本中,使用curl命令,从某个 URL 获取数据,并将其写入一个文件中。

        假设我们有一个脚本 `get_url_data.sh`,内容如下:

#!/bin/bash
# 指定要获取数据的 URL
URL="http://baoyang.com.cn/data"

# 使用 curl 获取数据,并将输出写入文件中
curl -s "$URL" > data.txt

# 检查数据是否成功写入文件
if [ $? -eq 0 ]; then
    echo "数据已成功写入 data.txt"
else
    echo "获取数据失败"
fi
# 脚本结束

(二)脚本代码说明

1、功能部分

        (1). 定义了一个变量 `URL`,它包含了我们要获取数据的 URL。

        (2). 用 `curl` 命令和 `-s` 选项(静默模式,不输出错误信息)来获取指定 URL 的数据。

        (3). 使用 `>` 符号将 `curl` 的输出重定向到文件 `data.txt` 中。

2、执行结果判断

        (1). 使用 `if` 语句和 `$?` 变量来检查 `curl` 命令的退出状态。如果退出状态为 0,表示命令成功执行;否则,表示执行失败。

        (2). 根据执行结果输出成功或者失败的信息提示。

3、其他说明

         这个脚本可以在 Linux 环境中运行,当你想要定期获取某个网站的数据或者在自动化任务中使用时非常有用。你可以根据需要修改 URL 和文件名。

(三)脚本执行

        要运行上述脚本,需要赋予它执行权限,然后可以通过命令行执行它:

chmod +x get_url_data.sh

./get_url_data.sh

        这将运行脚本,并按照脚本的设计输出相应的消息,并将数据写入 `data.txt` 文件。

(四)数据内容

        通过cat命令,可以看出,能够获取到对应的数据,如下图示:

        把data.txt的所有内容(html的源代码)列出来,如下所示:

[root@localhost quinn]# cat data.txt
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1, minimum-scale=1,user-scalable=no" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <meta name="format-detection" content="telephone=no" />
    <title>技术资料-苏州邦耀电子科技有限公司</title>
    <meta name="Keywords" content="苏州邦耀电子科技有限公司" />
    <meta name="Description" content="苏州邦耀电子科技有限公司" />
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <link href="/public/static/home/css/css.css" rel="stylesheet" type="text/css" />
    <link href="/public/static/home/css/pages.css" rel="stylesheet" type="text/css" />
    <link href="/public/static/home/css/reset.css" rel="stylesheet" type="text/css" />
    <link href="/public/static/home/css/style.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="/public/static/home/js/jquery.js"></script>
    <script type="text/javascript" src="/public/static/home/js/web.js"></script>
    <script type="text/javascript" src="/public/static/home/js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="/public/static/home/js/scroll.js"></script>
    <script type="text/javascript" src="/public/static/home/js/hyt_menu.js"></script>
    <link rel="shortcut icon" href="/favicon.ico" />
</head>

<body>
    <div class="header">
        <div class="header_center">
            <div class="logo fl"><a href="/"><img src="/public/static/home/picture/logo.jpg" class="fl"></a>
                <p>专业从事无线通讯设备销售<br />提供恰如所需的服务及通信解决方案</p>
            </div>
            <div class="header_r fr">
                <p class="top_links" style="text-align:right; margin-top:10px;"><a href="/service.html">技术资料</a> | <a href="/qa.html">常见问题</a> | <a href="/contact.html">联系我们</a></p>
                <p class="top_tel" style="text-align:right; margin-top:20px;"><img src="/public/static/home/images/tel.png"></p>
            </div>
            <div class="clear"></div>
        </div>
        <div class="nav" id="mynav">
            <ul class="clearfixed">
                <li>
                    <a href="/" class="">首页</a>
                </li>
                                <li>
                    <a href="/about.html" class="">关于我们</a>
                </li>
                                <li>
                    <a href="/news.html" class="">新闻中心</a>
                </li>
                                <li>
                    <a href="/products.html" class="">产品展示</a>
                </li>
                                <li>
                    <a href="/cases.html" class="">成功案例</a>
                </li>
                                <li>
                    <a href="/hr.html" class="">人才招聘</a>
                </li>
                                <li>
                    <a href="/service.html" class="cur">客户服务</a>
                </li>
                                <li>
                    <a href="/store.html" class="">购买方式</a>
                </li>
                            </ul>
        </div>
    </div>
<style>
#newlist li {
    border-bottom: dashed 1px #ccc;
    text-indent: 20px;
    line-height: 35px;
    background: url(/public/static/home/images/icon.jpg) 5px 14px no-repeat;
}

#newlist li span {
    float: right;
    padding: 0 10px 0 0;
    display: inline
}
</style>
<div style="width:980px; margin:0 auto; height:200px;"><img src="/public/static/home/images/banner_fuwu.jpg"></div>
<div class="container">
    <div class="pages_content">
        <div class="pages_bar fl">
            <div class="pages_menu">
                <div class="title">客户服务</div>
                <ul>
                                        <li class="cur"><a href="/service.html">技术资料</a></li>
                                        <li class=""><a href="/qa.html">常见问题</a></li>
                                    </ul>
            </div>
            <div class="pags_contact m10">
    <div class="title">联系我们</div>
    <div class="info">
        <p><img title="联系我们" src="/public/static/home/picture/14080036633180.png" alt=""></p>
        <p style="line-height:42px;"><strong>苏州邦耀电子科技有限公司</strong></p>
        <p><img src="/public/static/home/images/coni2.jpg" width="16" alt=""><a href="/store.html">门店联系方式</a></p>
        <p><img src="/public/static/home/images/coni1.jpg" width="15" alt=""><a href="/contact.html">公司联系方式</a></p>
        <p>网址:<span class="blue">http://www.szbydz.cn/</span></p>
        <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; www.bangyao.com.cn</p>
    </div>
</div>
        </div>
        <div class="pages_main fr">
            <h2 class="pages_title">
                <div class="posi fr">
                    <span>当前位置:</span> <a href="/">首页</a>&gt;&gt;<a href="/service.html">客户服务</a> &gt;&gt; <a href="/service.html" target="_self" class="cur">技术资料</a>
                </div>
                <span class="tit">技术资料</span>
            </h2>
            <div class="cont_text" style="padding:0 12px; margin-top:20px;line-height: 30px; font-size:14px;">
                <ul id="newlist">
                                        <li><span>2019-01-24</span> <a href="/service/12.html">为什么要选择数字对讲机?</a></li>
                                        <li><span>2019-01-24</span> <a href="/service/11.html">美军标及国际防护标准简介</a></li>
                                        <li><span>2016-04-25</span> <a href="/service/10.html">什么叫数字对讲机、数字对讲机的特点及优势</a></li>
                                        <li><span>2016-04-25</span> <a href="/service/9.html">如何正确使用电池</a></li>
                                        <li><span>2016-04-25</span> <a href="/service/7.html">普通消费者如何购买对讲机</a></li>
                                        <li><span>2016-04-25</span> <a href="/service/8.html">海能达对讲机电池日常使用及存放保养说明</a></li>
                                        <li><span>2016-04-22</span> <a href="/service/6.html">功分器、合路器、分路器的介绍</a></li>
                                        <li><span>2016-04-22</span> <a href="/service/4.html">防爆对讲机比较</a></li>
                                        <li><span>2016-04-22</span> <a href="/service/5.html">对讲机日常保养及使用注意事项</a></li>
                                        <li><span>2016-04-22</span> <a href="/service/3.html">对讲机莫当手机使用</a></li>
                                        <li><span>2016-04-22</span> <a href="/service/2.html">车载天线和基地台天线的选购知识</a></li>
                                        <li><span>2016-04-22</span> <a href="/service/1.html">DMR技术白皮书</a></li>
                                    </ul>
                <div class="clear"></div>
                <div class="pages" align="center"></div>
            </div>
        </div>
        <div class="clear"></div>
    </div>
</div>
<div id="fooding">
    <div class="w980">
        <div class="fooding_lb">
                        <ul>
                <p><a href="/about.html">关于我们</a></p>
                                <li><a href="/about.html">公司简介</a></li>
                                <li><a href="/culture.html">企业文化</a></li>
                                <li><a href="/honor.html">资质荣誉</a></li>
                                <li><a href="/idea.html">企业愿景</a></li>
                                <li><a href="/adv.html">我们的优势</a></li>
                            </ul>
                                    <ul>
                <p><a href="/news.html">新闻中心</a></p>
                                <li><a href="/news.html">邦耀咨询</a></li>
                            </ul>
                                    <ul>
                <p><a href="/products.html">产品展示</a></p>
                                <li><a href="/products.html?classid=21">对讲机产品</a></li>
                                <li><a href="/products.html?classid=22">车载对讲机</a></li>
                                <li><a href="/products.html?classid=23">中继台</a></li>
                                <li><a href="/products.html?classid=24">通讯配件</a></li>
                            </ul>
                                                            <ul>
                <p><a href="/service.html">客户服务</a></p>
                                <li><a href="/service.html">技术资料</a></li>
                                <li><a href="/qa.html">常见问题</a></li>
                            </ul>
                                    <ul>
                <p><a href="/store.html">购买方式</a></p>
                                <li><a href="/store.html">联系门店</a></li>
                                <li><a href="/contact.html">联系公司</a></li>
                                <li><a href="/message.html">在线留言</a></li>
                            </ul>
                                    <ul style=" width:120px;">
                <p><a href="">微信公众号</a></p>
                <li style="padding-top:5px;"><img src="/public/static/home/images/er.jpg" style="width:117px; height:117px;" /></li>
            </ul>
            <div style="clear:both"></div>
        </div>
        <div style="clear:both"></div>
    </div>
</div>
<!--顶上-->
<div class="footer">
    <div style="clear:both"></div>
    <div class="fooxia">
        <div class="w980" style="">
            <div class="fooxia_2" style="padding-top:25px;">
                <a href="/">网站首页</a>&nbsp;
                                <a href="/about.html">关于我们</a>&nbsp;
                                <a href="/news.html">新闻中心</a>&nbsp;
                                <a href="/products.html">产品展示</a>&nbsp;
                                <a href="/cases.html">成功案例</a>&nbsp;
                                <a href="/hr.html">人才招聘</a>&nbsp;
                                <a href="/service.html">客户服务</a>&nbsp;
                                <a href="/store.html">购买方式</a>&nbsp;
                            </div>
            <div class="fooxia_2">友情链接&nbsp;
                                <a href="http://www.hytera.com.cn">海能达</a>&nbsp;
                            </div>
            <div class="fooxia_3">
                <p>地址:江苏省苏州市姑苏区南园北路118号 &nbsp;联系电话:0512-65106078&nbsp;联系人:王经理&nbsp;手机:15995615713</p>
                <p style="padding-top:10px;">©  2024 苏州邦耀电子科技有限公司 <a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">苏ICP备16015847号-1</a>&nbsp;<a href="https://beian.mps.gov.cn/#/query/webSearch" target="_blank"><img src="/uploads/system/20240422/add01486cf3f0cb0b3634e1e5e964ec2.png" style="display:inline-block; height:20px">苏公网安备32050802011816号</a>&nbsp;技术支持:汇成传媒</p>
            </div>
        </div>
    </div>
</div>
</body>
[root@localhost quinn]#

显然,可以获取到我们需要的内容。

要求能够得到实现!


若想了解更多,文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨