Reto difícil. Los
sockets son complicados cuando se utilizan para leer código
html porque este suele ser cambiante y dejan inutilizado el
script. El siguiente código, en el momento de escribir esto, es capaz de separar los chistes del
html, pero eso no significa que en un futuro deje de hacerlo por los cambios que se produzcan en la citada
web. Ahí va:
;==========================================
; EXTRACCION DE CHISTES
;==========================================
alias x {
unset %chiste
set %chiste.w off
sockopen chiste chistepordia.blogspot.mx 80
}
on 1:sockopen:chiste:{
if ( $sockerr > 0 ) { return }
sockwrite -tn $sockname GET /search/label/Chiste%20de%20mam%C3%A1?&max-results=10 HTTP/1.1
sockwrite -tn $sockname Host: chistepordia.blogspot.mx:80
sockwrite -tn $sockname Connection: close
sockwrite -tn $sockname $crlf
}
on 1:sockread:chiste:{
if ( $sockerr > 0 ) { return }
:releesock
sockread -f %chiste
if ( $sockbr == 0 ) { return }
if ( %chiste == $null ) { %chiste = - }
if ( $len(%chiste) > 900 ) { %chiste = $left(%chiste,899) }
if ( <div class='post-body entry-content'> isin %chiste ) { set %chiste.w on | goto releesock }
if (<div style='clear: both;'></div> isin %chiste) { set %chiste.w off }
if ( %chiste.w == on ) {
set %chiste $remove(%chiste,—,¡,<br />,¿)
set %chiste $replace(%chiste,Ç,-,á,á,é,é,í,í,ó,ó,ú,ú,¡,¡,Ã,Á)
set %chiste $replace(%chiste,ñ,ñ,ó,ó,á,á,Ã,í,ú,ú,é,é,ü,ü,©,©,«,",»,", ,$chr(32))
echo -s %chiste
}
goto releesock
}
on 1:sockclose:chiste: { return }No ha sido fácil

He tardado tres días en hacer que funcione. Saludos