curl 用于从网站捕获信息的批处理文件

ulydmbyx  于 2023-05-23  发布在  其他
关注(0)|答案(2)|浏览(145)

我想从这个网站上得到这些信息:
1.日
2.月
3.年份
4.时间
https://www.timeanddate.com/worldclock/fullscreen.html?n=37
我该怎么做呢?
最好的方法是将它们保存在不同的变量中,我会说,并可能通过curl -o random. txt链接下载信息
我已经尝试过这样的东西:

curl -s -o r.txt link
set /p V=<r.txt
set V=%V:~4%

我相信有更简单更好的方法。。

k5ifujac

k5ifujac1#

试试这个:

@if (@x)==(@y) @end /***** jscript comment ******
     @echo off
     cscript //E:JScript //nologo "%~f0" "%~nx0"  | findstr /r /e "[0123456789]"
     exit /b %errorlevel%

***** end comment *********/

var strURL = "https://www.timeanddate.com/worldclock/fullscreen.html?n=37"
var ieOBJ = new ActiveXObject("InternetExplorer.Application");
ieOBJ.Visible = false
ieOBJ.Navigate2(strURL)

do {
    WScript.Sleep(100);
} while (ieOBJ.Busy);

var innerText=ieOBJ.document.body.innerText;
WScript.Echo(innerText);
ieOBJ.Quit()

它应该是扩展名为.bat的文件。

kulphzqa

kulphzqa2#

所以你基本上是在问如何从网站中提取特定的信息。你需要一个像xidel这样的HTML解析器:

xidel -s "https://www.timeanddate.com/worldclock/fullscreen.html?n=37"^
  -e "tokenize(//div[@id='i_date'])[position() gt 1],//div[@id='i_time']"
28
January
2023
21:53:02

我们从<div id=i_date>中抓取文本节点,通过在空白处“标记”将其转换为序列,并仅显示项目2,3和4。<div id=i_time>中的text-node我们按原样抓取。
要将这些导出到cmd-变量:

FOR /F "delims=" %A IN ('
  xidel -s "https://www.timeanddate.com/worldclock/fullscreen.html?n=37"
    -e "let $a:=tokenize(//div[@id='i_date']) return ($day:=$a[2],$month:=$a[3],$year:=$a[4]),$time:=//div[@id='i_time']"
    --output-format^=cmd
') DO %A

ECHO %day% %month% %year% %time%
28 January 2023 21:53:02

相关问题