如何用批处理文件从指定网站提取日、月、年、时间信息?
解决方案
命令行(Bash)高效实现
比起手动用正则解析curl返回的HTML,用专门的HTML解析工具pup能精准定位元素,避免正则匹配的不稳定问题:
- 先安装
pup:- Debian/Ubuntu:
sudo apt install pup - macOS:
brew install pup
- Debian/Ubuntu:
- 执行以下命令提取字段并存入变量:
# 获取目标时间元素的文本(页面核心时间元素ID为ct) raw_datetime=$(curl -s https://www.timeanddate.com/worldclock/fullscreen.html?n=37 | pup '#ct text{}') # 拆分日期时间到独立变量(格式示例:Friday, 15 November 2024 14:35:26) day=$(echo "$raw_datetime" | awk '{print $2}') month=$(echo "$raw_datetime" | awk '{print $3}') year=$(echo "$raw_datetime" | awk '{print $4}') time=$(echo "$raw_datetime" | awk '{print $5}') # 验证结果 echo "日: $day, 月: $month, 年: $year, 时间: $time"
Python 健壮实现
如果需要应对页面结构小变动,用requests+BeautifulSoup的结构化解析更可靠:
- 安装依赖:
pip install requests beautifulsoup4
- 脚本代码:
import requests from bs4 import BeautifulSoup url = "https://www.timeanddate.com/worldclock/fullscreen.html?n=37" resp = requests.get(url) soup = BeautifulSoup(resp.text, "html.parser") # 提取核心时间文本 raw_dt = soup.find(id="ct").text.strip() # 拆分字段 parts = raw_dt.split() day, month, year, time = parts[1], parts[2], parts[3], parts[4] print(f"日: {day}, 月: {month}, 年: {year}, 时间: {time}")
方案优势
- 避免正则陷阱:纯curl+正则依赖HTML的固定格式,网站微小更新就会失效;通过元素ID定位只要核心元素不变,就能稳定运行。
- 可读性与维护性更高:结构化解析逻辑清晰,比一堆正则替换更容易修改和调试。
内容的提问来源于stack exchange,提问作者Executioner
相关产品推荐
相关产品推荐

