Datos de Windows Batch / parse de la página web html

¿Es posible analizar datos de la página html web usando Windows Batch?

digamos que tengo una página web: www.domain.com/data/page/1 Page source html:

... 

En este caso, necesitaría obtener / publicar / ver / 664654 desde la página web.

Mi idea es recorrer el sitio www.domain.com/data/page/1 … # (a un número determinado) y extraer todos / post / view. Luego tendría una lista de enlaces, y de cada uno de esos enlaces extraería los valores href (imágenes o videos).

Hasta ahora solo he tenido éxito en la descarga de imágenes o videos cuando conozco el enlace exacto, usando wget. Pero no sé cómo (si es posible) analizar datos html.

editar

   
links I need

    Es mejor analizar el marcado estructurado como un objeto jerárquico, en lugar de raspar como texto plano. De esta forma, no depende tanto del formato de los datos que está analizando (si está minimizado, el espacio ha cambiado, lo que sea).

    El lenguaje por lotes no es muy adecuado para analizar el lenguaje de marcado como HTML, XML, JSON, etc. En tales casos, puede ser extremadamente útil utilizar un script híbrido y tomar prestado de los métodos JScript o PowerShell para raspar los datos que necesita . Aquí hay un ejemplo que demuestra un script híbrido batch + JScript. Guárdelo con una extensión .bat y pruébelo.

     @if (@CodeSection == @Batch) @then @echo off & setlocal set "url=http://www.domain.com/data/page/1" for /f "delims=" %%I in ('cscript /nologo /e:JScript "%~f0" "%url%"') do ( rem // do something useful with %%I echo Link found: %%I ) goto :EOF @end // end batch / begin JScript hybrid code // returns a DOM root object function fetch(url) { var XHR = WSH.CreateObject("Microsoft.XMLHTTP"), DOM = WSH.CreateObject('htmlfile'); XHR.open("GET",url,true); XHR.setRequestHeader('User-Agent','XMLHTTP/1.0'); XHR.send(''); while (XHR.readyState!=4) {WSH.Sleep(25)}; DOM.write(''); DOM.write(XHR.responseText); return DOM; } var DOM = fetch(WSH.Arguments(0)), links = DOM.getElementsByTagName('a'); for (var i in links) if (links[i].href && /\/post\/view\//i.test(links[i].href)) WSH.Echo(links[i].href); 

    Si solo necesita obtener /post/view/664654 , puede usar el comando grep , por ej.

     grep -o '/post/view/[^"]\+' *.html 

    Para analizar HTML más complejo, puede usar HTML-XML-utils o pup .