Ver la Versión Completa : [Sintaxis] Sacar y guardar el cógido fuente de una pagina Web
Roger
5 de marzo de 2015, 20:20
Amigos del foro
Como puedo programar en power este control shortcut ctrl+u y automaticamente lo envia a un archivo (html) me urge.
Kuk
5 de marzo de 2015, 20:47
Roger, lo puedes hacer en el "KeyDown" del Form:
*
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 POW-ARG-KEYCODE PIC S9(4) COMP-5.
01 POW-ARG-SHIFT PIC S9(4) COMP-5.
PROCEDURE DIVISION USING POW-ARG-KEYCODE POW-ARG-SHIFT.
IF POW-ARG-KEYCODE = POW-KEY-U AND
POW-ARG-SHIFT = POW-SHIFTSTATE-CTRL
tu codigo...
END-IF
Roger
5 de marzo de 2015, 22:08
KUK
desde un boton llamar a una pagina web activar crtl+u y se grabe en un archivo en forma automatica.
http://nsae02.casimages.net/img/2015/03/05/150305100522693027.jpg
¿Hay otra forma de pasar la informacion que me muestra en esta pagina?
no importa si fuese en htlm
Kuk
5 de marzo de 2015, 22:38
Roger, es que no te has explicado bien antes. Tu lo que quieres es algo mas complicado de hacer.
Se me ocurren 2 opciones:
Mediante un control WebBrowser (o similar), cargar la magina y sacarle el codigo fuente.
Mediante VBScript, no se exactamente como pero pienso que se podria hacer.
Si solo fuera llamar la web se podria por COM (el ejemplo que publico Rapinto hace unos dias), VBScript o incluso por Shell directamente desde PowerCOBOL, pero si quieres guardar el fuente... La via mas rapida seria WebBrowser.
Lo del Ctrl+U no se a que sirve pero supongo que si tienes la pagina dentro del control WebBrowser te tu Form le podras hacer lo que quieras.
Roger
5 de marzo de 2015, 23:00
KUk
Mediante un control WebBrowser (o similar), cargar la maquina y sacarle el codigo fuente.
con el navegador se hace de esta manera he visto otros programadores
hacen esto con un boton en sus programa
Mozilla Firefox:
Abre Mozilla Firefox
Clic derecho o presiona las teclas Control + U
Haz clic en "Ver código fuente"
Una vez completados los pasos anteriores una nueva ventana se abrirá mostrando el código fuente.
Haz clic en el menú Archivo
Clic en "Guardar como"
Guarda el archivo como un archivo txt.. Ejemplo de nombre de archivo : codigo fuente.txt
:bronca:
Kuk
6 de marzo de 2015, 09:13
Roger, todo lo que dices se hace a mano, con el raton. No se puede (o es casi imposible) de hacerlo via programa, en todo caso seria muy muy pero que muy complicado.
Existen controles OCX, de Microsoft que se llama WebBrowser, DBITech tiene el CtHtml o algo asi se llama... Si lo metes en tu aplicacion en un Form, puedes manejar todo, asimismo sacar el codigo fuente de la pagina cargada en el control. Es esto lo que te decia ;)
P.D. esa carita de colleja espero que no sea para mi queriendo decir que no me entero de nada en esta vida :D :D :D
Rapinto
6 de marzo de 2015, 12:05
Roger,
Penso que se consegue assim:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WINHTTP PIC X(128) VALUE "MSXML2.ServerXMLHTTP".
*
01 OBJHTTP USAGE OBJECT REFERENCE COM.
01 OP1 PIC X(256) VALUE "POST".
01 WSSITE PIC X(256) VALUE SPACE.
01 SITE PIC X(256) VALUE SPACE.
*
01 OP3 PIC X(256) VALUE "FALSE".
*
01 OP4 PIC X(256) VALUE "User-Agent".
01 OP5 PIC X(256) VALUE "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)".
01 OP6 PIC X(256) VALUE " ".
01 COUNTER pic s9(09) comp-5.
01 DMICON pic s9(09) comp-5.
01 returnvalue pic s9(09) comp-5.
01 RESPOSTA PIC X(8192).
*
01 OLE-ERR-INFO.
03 OLE-ERR-TYPE PIC X(001).
03 OLE-ERR-WCODE PIC X(002).
03 ROLE-ERR-WCODE REDEFINES OLE-ERR-WCODE PIC S9(04) COMP-5.
03 OLE-ERR-SCODE PIC X(004).
03 ROLE-ERR-SCODE REDEFINES OLE-ERR-SCODE PIC S9(09) COMP-5.
*
PROCEDURE DIVISION.
DECLARATIVES.
OLE-ERRO SECTION.
USE AFTER EXCEPTION COMEXCEPTION.
INVOKE EXCEPTION-OBJECT "GET-ERROR-TYPE"
RETURNING OLE-ERR-TYPE.
INVOKE POW-SELF "DisplayMessage" USING OLE-ERR-TYPE "ERRO EM OLE2"
GO TO MAIN-90.
END DECLARATIVES.
MAIN SECTION.
MAIN-00.
INITIALIZE SITE.
MOVE "TEXT" OF CMSITE TO WSSITE.
IF WSSITE = SPACE GO TO MAIN-99-EXIT.
IF WSSITE(1:4) = "HTTP" OR = "http" GO TO MAIN-10.
MOVE "HTTP://" TO SITE.
MOVE WSSITE TO SITE(8:).
MOVE SITE TO WSSITE.
MOVE SITE TO "TEXT" OF CMSITE.
*
MAIN-10.
INVOKE COM "CREATE-OBJECT" USING WINHTTP RETURNING OBJHTTP.
*
INVOKE OBJHTTP "OPEN" USING OP1 WSSITE.
INVOKE OBJHTTP "setRequestHeader" USING OP4 OP5 .
*
INVOKE OBJHTTP "send" USING OP6.
*
INVOKE OBJHTTP "get-ResponseText" RETURNING RESPOSTA.
MOVE RESPOSTA TO XMLLINHA.
MOVE RESPOSTA TO "TEXT" OF CMTEXT1.
* INVOKE OBJHTTP "get-ResponseBody" RETURNING RESPOSTA.
*****
* MOVE RESPOSTA TO XMLLINHA.
GO TO MAIN-90.
MAIN-90.
SET OBJHTTP TO NULL.
MAIN-99-EXIT.
EXIT PROGRAM.
Em anexo tens um ppj (Versão 9.0 do Fujitsu Cobol)
Kuk
6 de marzo de 2015, 14:17
Rapinto, esto es VBScript, pasandolo por COM/OLE no? En realidad VBScript utiliza COM/OLE tambien (si no me equivoco). O sea, al menos la mayoria de sus posibilidades se basan en COM/OLE. Corrigeme si no es correcto.
Roger
6 de marzo de 2015, 16:49
Amigos KUK Y RAPINTO
Si es tema creo un poco complicado pero nada imposible, he estado revisando y trasteando otras posibilidades hice pruebas con cthtml.ocx de dbi tech funciona en 60% pero el problema surge cuando necesito esa informacion pasar a mi base de datos este control tiene una propiedad de URL pero como el link tiene capcha solo te pasa la parte inicial de del URL.
Tampoco te permite captar el codigo fuente, por el ppj. que me envio Rapinto probe con este link Consulta RUC (http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS03Alias) me envia un error ERROR EM OLE 2.
Creo que por este link esta la grieta que es para consulta mediante celulares y si te permite coger el codigo fuente.
¿Cual es la finalidad de todo esto? tengo sistemas ya instalado en diferentes empresas que tenian la validacion en linea la consulta del RUC por medio de otro link pero este dejo de funcionar, de igual forma otras empresas que tiene sistemas en otros lenguajes ya arreglaron este
"problema" estos lo hicieron en diferentes lenguajes fox pro, visual basic, phyton mi deseo era hacerlo en powercobol como anteriormente lo hice pero me tope con todo este desconocimiento.
si desean ver aca dejo unos enlaces donde demuestran el aplicativo
Consulta RUC Sunat - Peru Foxpro - YouTube (https://www.youtube.com/watch?v=Z8Oi2ljLbPg)
Consulta Ruc 2015 + Codigo Fuente + Explicación = S/. 100.00 - YouTube (https://www.youtube.com/watch?v=FKBbjJQQbx0)
Kuk
6 de marzo de 2015, 18:00
Roger, yo de web no controlo mucho. Lo que te puedo ofrecer de ayuda es:
Si existe una DLL sea en VB sea en C++ (compilada) que haga lo mismo que hace esa web, la puedo sondear y darte el codigo COBOL para que la llames mediante WinAPI, cargarla dinamicamente, encontrar y llamar la función necesaria (o sea, sin necesidad de *.LIB).
Rapinto
6 de marzo de 2015, 18:40
Roger,
Se conseguires o código VB6 ou C++ , manda-me e posso tentar passar a cobol.
Como te disse no outro tema, as coisas têm que ser feitas por aquela ordem.
Falta-me saber como apanhar a imagem e o OCR para a interpretar.
O erro de OLE2 pode ser de estar proibido o download da página (isso é possível) ou por ser por WAP (telefone móvel).
Aguardo que me digas se consegues a source em VB6.
Saludos,
Rui Pinto
Añadido despues de 10 minutos
KUK,
O que faço, muitas vezes, é encontrar código em vb6 ou c++, e tentar passar para Cobol.
Aquele código para fazer download do HTML de uma pagina web, testei em VB6 e como funcionou, passei para OLE2 em COBOL.
A situação apontado por Roger, de não conseguir ver a página, não é bem assim: ele obtem é o HTML de uma pagina de erro devolvida pelo Site.
Rui Pinto
Roger
6 de marzo de 2015, 21:20
RUI
Estoy tratando de comunicarme con el programador que hizo ese aplicativo si me envia el codigo
en visual basic lo pego en esta pagina para poder desarrollar en powercobol y creo todos aprenderemos un poco mas.:)
Kuk
6 de marzo de 2015, 21:51
Roger, si quieres compila el codigo VB en una DLL y como te decía en este post (http://www.cobolforo.es/showthread.php?t=65&p=209) (creo que no lo has visto) te preparare el codigo COBOL para poder llamar esa DLL.
Roger
7 de marzo de 2015, 00:32
KUK
Lamentablemente no tengo el codigo solo un intento pero no funciona, asi que me acorde de mis inicios cuando no tenia ninguna herramienta en visual de cobol y empeze a programar en Neobook
para mis pantallas.
Hice esto cree un form en neobook compilador delphi, puse un WebBrowser1 muy similar
al cthtml.ocx de dbitech con direccion al URL, un campo ListBox1 similar al cmlist de powercobol, y un boton para la transferencia.
comandos en delphi
BrowserExport "WebBrowser1" "[ListBox1]"
FileWrite "[PubDir]SUNAT.HTML" "1" "[ListBox1]"
Muevo codigo fuente al campo listbox, grabo en un archivo, muy simple y funciona.
como hacer el comando BrowserExport "WebBrowser1" "[ListBox1] en cobol??
Ya con el archivo en htlm lo puedo leer como un archivo secuencial y extraer los datos que necesito.
http://nsae02.casimages.net/img/2015/03/07/150307123008339605.jpg
http://nsae02.casimages.net/img/2015/03/07/150307123120123380.jpg
Esto es la primera parte, ahora sigue como evadir el capcha....
Kuk
7 de marzo de 2015, 15:33
Roger, la sintaxis que has indicado no es de Delphi (que yo sepa)...
Por cierto, cuando instertas imagenes, duplicas el TAG IMG y por eso se queda como texto alrededor de las imagenes que insertas.
Roger
7 de marzo de 2015, 17:53
Kuk
Tienes razón esos no son codigo delphi son codigo del neobook pero este compila con delphi.
consulte al programador que elaboro el aplicativo y me dijo que lo hizo en delphi por eso que me anime
a resusitar ni neobook que sabia compilaba con delphi que tiene muchos comandos que son similares
al de dbitech pero ya los tiene en su compilador en todo caso sera un aplicativo externo de consulta que lo llamare por
INVOKE POW-SELF "EXECUTE"
USING "..\SUNAT.EXE"
Lo bueno de este compilador es que el .exe es portable no tengo necesidad de instalar nada.
Sere terco seguire viendo la forma de hacerlo con powercobol no creo que no se pueda r
solo es falta de conocimiento.
:beber:
Rapinto
10 de marzo de 2015, 01:21
Roger,
Podes testar o Exe anexo? Diz-me se funciona para o que pretendes.
Está feito em VB6 e utiliza WEBBROWSER1 e grava ficheiro captcha.bmp
Fico a aguardar.
Saludos,
Rui Pinto
Roger
10 de marzo de 2015, 03:42
Rui
Esta perfecto lo probe con OCR free y si funciona lo pasa a texto pero este servicio solo funciona
10 veces por dia, tendre que buscar un programa que tenga la misma funcion para integrar con el aplicativo Site_sunat que me enviaste inicialmente.
El rompecabeza se va armando solo falta un poco de paciencia.
:amigo:
Rapinto
10 de marzo de 2015, 23:30
Roger,
Está aqui uma nova versão do Exemplo.
Tens que ter o ficheiro : "tesseract.exe" e a pasta "TessData" na mesma pasta do executável.
Não consigo enviar tudo, pois o fórum tem os ZIP limitados a 97 Kbytes(???).
O programa liga ao site, apanha a iamegm como BMP e faz o ocr com o (gratuito) Tesseact.exe (tipo linha de comando DOS)
Experimenta.
Saludos
Roger
11 de marzo de 2015, 21:29
Rui
Hice las prueba con tesseract.exe y funciona en un 99% bien falta hacer unos pequeños arreglos
instale todo el paquete no se si solo con el exe funciona.
Puedes probar con este convertir la imagen a texto con una OCR en NET llamada tessnet2.dll.
para que el .exe sea mas liviano.
Estoy tratando de inscrustar este aplicativo que me mandaste al programa inicial y con eso
creo debe funcionar.
:lee: :help:
Rapinto
11 de marzo de 2015, 22:56
Roger,
Se achares que funciona bem, acho que deves ficar com a "source" em VB6. Poderás assim alterar
ou melhorar o programa.
So com o Tesseract.exe e a pasta "Tessdata" já funciona.
Saludos,
Rui Pinto
vBulletin v3.8.7, Derechos ©2000-2026, Jelsoft Enterprises Ltd.