Título: Descarga desde WebBrowser Publicado por: Dragonatak en 28 Octubre 2011, 09:46 am Saludos: Mi problema es este, estoy realizando una aplicación en la que entro a una página que pide login y password, postriormente necesito ingresar a un link para que me envíe a la siguiente pantalla, una vez que cargó toda la nueva pagina, la cual contiene una tabla con hypervinculos en forma de imagen de boton para descaragar los archivos que necesito. Ya tengo todo el acceso hasta la 3er pantalla y las cadenas cortadas para sus descargas, pero al tratar de descargar los archivos estos se bajan incompletos, con: My.Computer.Network.DownloadFile me terminan pesando menos de 1Kb Y con objWebClient = New System.Net.WebClient objWebClient.DownloadFile Me descarga hasta 3 Kb. Ya etsuve leyendo mucho e intentando varias cosas pero aún no logro que los archivos se descarguen completos. Mi pregunta es existe alguna forma de descargarlos de la página que se argo en el WebBrowser???, de antemano gracias por su ayuda!! =) Título: Re: Descarga desde WebBrowser Publicado por: s00rk en 28 Octubre 2011, 14:32 pm A mi parecer es que talves esta mal hecho los parametros para descargar, ya que si descarga solo 1 kb es raro, seria incompleto si descargara & que le faltaran unos kb's o algo asi.
Pero bueno tambien puedes descargar parte por parte en bytes, yo uso una clase llamada DownloadFilesWithProgressBar en Google la encuentras facil hehehe Suerte n_n Título: Re: Descarga desde WebBrowser Publicado por: seba123neo en 28 Octubre 2011, 14:50 pm podes poner cual es la pagina web ?
Título: Re: Descarga desde WebBrowser Publicado por: Dragonatak en 2 Noviembre 2011, 10:02 am Saludos: Antes que nada les doy las gracias por responderme, les comento en lo que voy con esto, efectivamente o al menos eso creo, que como comentas s00rk estaba planteando mal al descarga, puesto que estaba accesando a las páginas atravez del webbrowser, pero después pedía la descargas de los archivos con las sentencias Downloadfile y objWebClient.Downloadfile; por lo que se me impedía la descarga de los archivos y supongo que solo se generaba el archivo. Al pensar en ello se me ocurrió tratar de descargarlo desde el Webbrowser, estuve buscando pero no existe algo tal cual para hacerlo, así que utilizando WebBrowser2.Navigate pude llegar a los archivos, ahora mi problema es la ventana de save as y que todo se haga automático. Lo que estoy haciendo es mandar un tiempo de espera de 5 segundos entre archivo y archivo y después enviarle tabs y enter's, pero o no lo hace o se traba, que pueden recomendarme???????? Por cierto la página Seba123neo es: http://www.masteredi.com.mx al entrar con el user y el pass pasa a una página donde te pide que deseas realizar con hipervínculos, y ahí se debe de presionar la liga de archivos nuevos y en la siguiente págian que es la que interesa hacer la descarga de todos los archivos. La clave es 1809 Título: Re: Descarga desde WebBrowser Publicado por: Dragonatak en 3 Noviembre 2011, 04:01 am Saludos:
He seguido con esto y el problema sigue siendo el mismo me genera 1 sola ventana de descarga después de hacer la petición de todos los hipervinculos que se deberían de descargar. Pero lo que no logro es como decirle que se guarde cuando se presenta el cuadro de Dialogo Guardar Como, les comento he intentado inmediatamente después de la petición de navegación y que se debería de generar la descarga los Enter's y Tab's y no lo hace, enviando el foco al form al terminar la Subrutina e igual nada, por favor échenme la mano, de antemano gracias. Título: Re: Descarga desde WebBrowser Publicado por: Dragonatak en 3 Noviembre 2011, 10:05 am Ya tuve un nuevo avance, lo que hice fue separarlo por subrutinas, la de la obtención de cadenas, la de la descarga y la importante por así decirlo y que creo que es la que me ha ayudado, la del Timer.
Cada 10 seg's me descarga un archivo diferente, ya me aparecen las ventanas de guardado consecutivas, ahora mi problema es el control de las mismas, si conocen algún método de manejo o alguna recomendación se agradece muchísimo, de cualquier forma, comento si hay algún nuevo avance, saludos. Título: Re: Descarga desde WebBrowser Publicado por: seba123neo en 3 Noviembre 2011, 14:09 pm Hola, despues te publico lo que pude hacer, paciencia, pero te ahorras muchisimo codigo con lo que hice yo, desde ya te digo.
saludos. Título: Re: Descarga desde WebBrowser Publicado por: seba123neo en 3 Noviembre 2011, 14:10 pm Hola, despues te publico lo que pude hacer, paciencia, pero te ahorras muchisimo codigo con lo que hice yo, desde ya te digo.
saludos. Título: Re: Descarga desde WebBrowser Publicado por: seba123neo en 4 Noviembre 2011, 03:07 am bueno mira, hice un codigo asi nomas para mostrarte como seria.
para loguearte en la web podes hacerlo de 2 formas: una es completando en el webbrowser los controles textbox desde el codigo, como estas haciendo vos. pero la otra que es mas corta y te evitas hacer eso, es directamente con la direccion URL...me pude fijar que cuando uno se loguea en esa web en el metodo POST que realiza, envia una cabecera con el nombre de usuario y contraseña, o sea que no necesitas completar los controles, sino directamente hacerlo desde la URL. por ejemplo, si haces esto: Código
con eso te logueas en la web. este es el codigo final,necesitas un webbrowser un boton y un listbox en el formulario, los nombres por defecto. Código
te explico un poco lo que hace: 1 - al apretar el boton se loguea en la web mediante la URL. 2 - cuando se completa la carga de la pagina, navega hacia la direccion donde estan los archivos a bajar. 3 - y cuando termina de cargarse la pagina con los archivos, son como 800, tarda unos minutos. lo que hace es parsear el codigo HTML de la pagina, y extrae los links que haya. 4 - para parsear los links podes usar varias formas, expresiones regualares o tabmein la libreria que use en este ejemplo que es buenisima, se llama Html Agility Pack (http://htmlagilitypack.codeplex.com/) ahi podes bajar la libreria dll y agregarla al proyecto como referencia. 5 - lo que hace es extraer los links de la pagina, al extraerlos te devuelve algo como esto: Citar /masteredi/Default.asp default.asp muestra.asp?archivo=02-001809-20110907_616048-001-ORD_COMPRA.log /masteredi/bajar.asp?archivo=02-001809-20110907_616048-001-ORD_COMPRA.EXE /masteredi/mail.asp?archivo=/data/1809/02-001809-20110907_616048-001-ORD_COMPRA.EXE&log=1809/02-001809-20110907_616048-001-ORD_COMPRA /masteredi/bajar.asp?archivo=02-001809-20110907_616048-001-ORD_COMPRA.ZIP muestrac.asp?archivo=02-001809-20110907_616048-001-ORD_COMPRA.inw /masteredi/viejosconf.asp?archivo=1809/02-001809-20110907_616048-001-ORD_COMPRA muestra.asp?archivo=02-001809-20110907_616049-004-DEVOLUCION.log /masteredi/bajar.asp?archivo=02-001809-20110907_616049-004-DEVOLUCION.EXE /masteredi/mail.asp?archivo=/data/1809/02-001809-20110907_616049-004-DEVOLUCION.EXE&log=1809/02-001809-20110907_616049-004-DEVOLUCION /masteredi/bajar.asp?archivo=02-001809-20110907_616049-004-DEVOLUCION.ZIP muestrac.asp?archivo=02-001809-20110907_616049-004-DEVOLUCION.inw /masteredi/viejosconf.asp?archivo=1809/02-001809-20110907_616049-004-DEVOLUCION muestra.asp?archivo=09-001809-20110907_555655-998-APERAK.log /masteredi/bajar.asp?archivo=09-001809-20110907_555655-998-APERAK.EXE /masteredi/mail.asp?archivo=/data/1809/09-001809-20110907_555655-998-APERAK.EXE&log=1809/09-001809-20110907_555655-998-APERAK /masteredi/bajar.asp?archivo=09-001809-20110907_555655-998-APERAK.ZIP muestrac.asp?archivo=09-001809-20110907_555655-998-APERAK.inw /masteredi/viejosconf.asp?archivo=1809/09-001809-20110907_555655-998-APERAK muestra.asp?archivo=09-001809-20110907_555729-998-APERAK.log /masteredi/bajar.asp?archivo=09-001809-20110907_555729-998-APERAK.EXE /masteredi/mail.asp?archivo=/data/1809/09-001809-20110907_555729-998-APERAK.EXE&log=1809/09-001809-20110907_555729-998-APERAK /masteredi/bajar.asp?archivo=09-001809-20110907_555729-998-APERAK.ZIP muestrac.asp?archivo=09-001809-20110907_555729-998-APERAK.inw /masteredi/viejosconf.asp?archivo=1809/09-001809-20110907_555729-998-APERAK muestra.asp?archivo=09-001809-20110907_556003-998-APERAK.log /masteredi/bajar.asp?archivo=09-001809-20110907_556003-998-APERAK.EXE /masteredi/mail.asp?archivo=/data/1809/09-001809-20110907_556003-998-APERAK.EXE&log=1809/09-001809-20110907_556003-998-APERAK /masteredi/bajar.asp?archivo=09-001809-20110907_556003-998-APERAK.ZIP muestrac.asp?archivo=09-001809-20110907_556003-998-APERAK.inw /masteredi/viejosconf.asp?archivo=1809/09-001809-20110907_556003-998-APERAK muestra.asp?archivo=09-001809-20110907_556004-001-ORD_COMPRA.log /masteredi/bajar.asp?archivo=09-001809-20110907_556004-001-ORD_COMPRA.EXE /masteredi/mail.asp?archivo=/data/1809/09-001809-20110907_556004-001-ORD_COMPRA.EXE&log=1809/09-001809-20110907_556004-001-ORD_COMPRA /masteredi/bajar.asp?archivo=09-001809-20110907_556004-001-ORD_COMPRA.ZIP muestrac.asp?archivo=09-001809-20110907_556004-001-ORD_COMPRA.inw /masteredi/viejosconf.asp?archivo=1809/09-001809-20110907_556004-001-ORD_COMPRA muestra.asp?archivo=09-001809-20110907_556157-001-ORD_COMPRA.log /masteredi/bajar.asp?archivo=09-001809-20110907_556157-001-ORD_COMPRA.EXE /masteredi/mail.asp?archivo=/data/1809/09-001809-20110907_556157-001-ORD_COMPRA.EXE&log=1809/09-001809-20110907_556157-001-ORD_COMPRA /masteredi/bajar.asp?archivo=09-001809-20110907_556157-001-ORD_COMPRA.ZIP muestrac.asp?archivo=09-001809-20110907_556157-001-ORD_COMPRA.inw /masteredi/viejosconf.asp?archivo=1809/09-001809-20110907_556157-001-ORD_COMPRA muestra.asp?archivo=09-001809-20110907_556214-001-ORD_COMPRA.log /masteredi/bajar.asp?archivo=09-001809-20110907_556214-001-ORD_COMPRA.EXE /masteredi/mail.asp?archivo=/data/1809/09-001809-20110907_556214-001-ORD_COMPRA.EXE&log=1809/09-001809-20110907_556214-001-ORD_COMPRA /masteredi/bajar.asp?archivo=09-001809-20110907_556214-001-ORD_COMPRA.ZIP muestrac.asp?archivo=09-001809-20110907_556214-001-ORD_COMPRA.inw /masteredi/viejosconf.asp?archivo=1809/09-001809-20110907_556214-001-ORD_COMPRA muestra.asp?archivo=09-001809-20110907_556215-001-ORD_COMPRA.log /masteredi/bajar.asp?archivo=09-001809-20110907_556215-001-ORD_COMPRA.EXE /masteredi/mail.asp?archivo=/data/1809/09-001809-20110907_556215-001-ORD_COMPRA.EXE&log=1809/09-001809-20110907_556215-001-ORD_COMPRA /masteredi/bajar.asp?archivo=09-001809-20110907_556215-001-ORD_COMPRA.ZIP muestrac.asp?archivo=09-001809-20110907_556215-001-ORD_COMPRA.inw /masteredi/viejosconf.asp?archivo=1809/09-001809-20110907_556215-001-ORD_COMPRA muestra.asp?archivo=16-001809-20110907_005072-001-ORD_COMPRA.log /masteredi/bajar.asp?archivo=16-001809-20110907_005072-001-ORD_COMPRA.EXE /masteredi/mail.asp?archivo=/data/1809/16-001809-20110907_005072-001-ORD_COMPRA.EXE&log=1809/16-001809-20110907_005072-001-ORD_COMPRA /masteredi/bajar.asp?archivo=16-001809-20110907_005072-001-ORD_COMPRA.ZIP muestrac.asp?archivo=16-001809-20110907_005072-001-ORD_COMPRA.inw /masteredi/viejosconf.asp?archivo=1809/16-001809-20110907_005072-001-ORD_COMPRA muestra.asp?archivo=28-001809-20110907_085078-997-CONTRL.log /masteredi/bajar.asp?archivo=28-001809-20110907_085078-997-CONTRL.EXE /masteredi/mail.asp?archivo=/data/1809/28-001809-20110907_085078-997-CONTRL.EXE&log=1809/28-001809-20110907_085078-997-CONTRL /masteredi/bajar.asp?archivo=28-001809-20110907_085078-997-CONTRL.ZIP muestrac.asp?archivo=28-001809-20110907_085078-997-CONTRL.inw /masteredi/viejosconf.asp?archivo=1809/28-001809-20110907_085078-997-CONTRL muestra.asp?archivo=28-001809-20110907_085084-001-ORD_COMPRA.log /masteredi/bajar.asp?archivo=28-001809-20110907_085084-001-ORD_COMPRA.EXE /masteredi/mail.asp?archivo=/data/1809/28-001809-20110907_085084-001-ORD_COMPRA.EXE&log=1809/28-001809-20110907_085084-001-ORD_COMPRA /masteredi/bajar.asp?archivo=28-001809-20110907_085084-001-ORD_COMPRA.ZIP muestrac.asp?archivo=28-001809-20110907_085084-001-ORD_COMPRA.inw /masteredi/viejosconf.asp?archivo=1809/28-001809-20110907_085084-001-ORD_COMPRA muestra.asp?archivo=09-001809-20110908_556258-998-APERAK.log /masteredi/bajar.asp?archivo=09-001809-20110908_556258-998-APERAK.EXE /masteredi/mail.asp?archivo=/data/1809/09-001809-20110908_556258-998-APERAK.EXE&log=1809/09-001809-20110908_556258-998-APERAK /masteredi/bajar.asp?archivo=09-001809-20110908_556258-998-APERAK.ZIP muestrac.asp?archivo=09-001809-20110908_556258-998-APERAK.inw como ves hay links que no sirven, y por eso despues filtra solo los que terminan en ".exe" que son los que vos necesitas. y listo, solo te queda ponerte a bajar cada archivo, lo podes hacer con WebClient o de varias formas. saludos. Título: Re: Descarga desde WebBrowser Publicado por: Dragonatak en 4 Noviembre 2011, 03:47 am Muchas Gracias!!!! =D Tenías razón te ahorraste un buen de código. Ahora solo me queda la duda con la descarga, WebClient nunca lo he utilizado, ya estoy investigandole para ver como funciona. Como me recomiendas que la haga????? o cual método crees que me sería mucho más efectivo para la descarga automática???? También ya me bajé el HTML Agility Pack, ahorita estoy con ello. Nuevamente muchas gracias, ahorita voy a estar con lo de la descarga, en cuanto tenga algo, posteo. Nuevamente gracias, por favor espero puedas asesorarme nuevamente con la descarga, gracias. Título: Re: Descarga desde WebBrowser Publicado por: seba123neo en 4 Noviembre 2011, 03:57 am pues todos esos links del listbox son para mostrarlos nomas, el listbox sacalo, vos lo que tenes que hacer es meter en un array de string esos links y despues recorrer este array e ir descargando de a uno los archivos, busca en internet hay ejemplos de descargar un archivo.
C# Code Snippet - Download File from URL (http://www.digitalcoding.com/Code-Snippets/C-Sharp/C-Code-Snippet-Download-File-from-URL.html) Título: Re: Descarga desde WebBrowser Publicado por: Dragonatak en 4 Noviembre 2011, 05:02 am Hola ya probé con el WebClient y me sigue descargando archivos de 3Kb, eso o solo me está generando el archivo. Tengo lo siguiente: For Me.i = val To Var Try If Me.i <= Var Then ' Hacemos el WebClient. Dim web_client As WebClient = New WebClient web_client.DownloadFile("http://www.masteredi.com.mx/masteredi/bajar.asp?archivo=" & cadenaFinal(Me.i) & ".EXE", "C:\Edi1\DATOS\Descargas\" & cadenaFinal(Me.i)) Else Exit Sub End If Catch ex As Exception MessageBox.Show(ex.Message) End Try Next Antes también había probado con My.Computer.Network.DownloadFile Obteniendo el mismo resultado. Tengo otra pregunta donde coloco el dll del HTML Agility Pack???, disculpa por todas las dudas pero apenas me estoy migrando a .NET de Visual 6, gracias nuevamente |