Recuperación de datos del sitio PMU

dadacourse Mensajes publicados 143 Estado Miembro -  
dadacourse Mensajes publicados 143 Estado Miembro -
Hola,
Desde hace varios años, recupero automáticamente los resultados del PMU a través de una macro de Excel utilizando mi navegador IE11.
Este programa abre cada carrera una tras otra, abriendo para cada una el "Tabla de participantes" y luego los "reportes probables" y finalmente "Mostrar todos los reportes".
Un internauta genial y muy simpático (he olvidado su apodo y me disculpo con él) me había escrito un programa para Excel (a continuación la copia).
Hoy, me gustaría cambiar de navegador, Microsoft Edge o Google Chrome (a elección de quien quiera ayudarme), así que reescribir un programa adaptado… lo cual soy incapaz de hacer.

De antemano, les agradezco por cualquier ayuda.

**Modificado por la moderación para una lectura más fácil del código, en el futuro utilicen las etiquetas, VER ESTA PÁGINA
Sub TodosLosReportes() Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim coll_Li As IHTMLElementCollection Dim Li As HTMLGenericElement 'apertura de la página Internet Explorer IE.navigate "https://www.pmu.fr/turf/index.html#19032015/R1/C3" IE.Visible = True 'espera a que la página cargue completamente IE WaitIE IE Application.Wait Time + TimeSerial(0, 0, 2) 'apuntamos al documento de esta página Set IEDoc = IE.document 'espera a que el elemento Documento de la página cargue completamente IE WaitDoc IEDoc Application.Wait Time + TimeSerial(0, 0, 2) 'creamos nuestra colección que contiene todas las etiquetas <li> Set coll_Li = IEDoc.getElementsByTagName("li") 'recorremos todas las etiquetas <li> de nuestra colección For Each Li In coll_Li 'Si la className de la etiqueta <li> es "actionbar-item js-all-report-button" If Li.className = "pari-list-item pari-list-item--all js-all-report-button" Then 'clicamos Li.Click 'saliendo Exit For End If Next End Sub ------------------------------------------------------------------------------------------------------ Sub WaitIE(IE As InternetExplorer) 'espera a que la página cargue completamente IE Do Until IE.ReadyState = READYSTATE_COMPLETE DoEvents Loop End Sub --------------------------------------------------------------------------------------------------- Sub WaitDoc(doc As HTMLDocument) 'espera a que el elemento Documento cargue completamente Do While Not doc.ReadyState = "complete" DoEvents Loop End Sub -------------------------------------------------------------------------------------------------- Sub TodosLosReportes02() ' ' TodosLosReportes02 Macro ' ' Sheets("01 (2)").Select Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim coll_Li As IHTMLElementCollection Dim Li As HTMLGenericElement 'apertura de la página Internet Explorer IE.navigate "" & [AM13].Value IE.Visible = True 'espera a que la página cargue completamente IE WaitIE IE Application.Wait Time + TimeSerial(0, 0, 2) 'apuntamos al documento de esta página Set IEDoc = IE.document 'espera a que el elemento Documento de la página cargue completamente IE WaitDoc IEDoc Application.Wait Time + TimeSerial(0, 0, 2) 'creamos nuestra colección que contiene todas las etiquetas <li> Set coll_Li = IEDoc.getElementsByTagName("li") 'recorremos todas las etiquetas <li> de nuestra colección For Each Li In coll_Li 'Si la className de la etiqueta <li> es "actionbar-item js-all-report-button" If Li.className = "partants actif visible" Then 'clicamos Li.Click 'saliendo Exit For End If Next 'creamos nuestra colección que contiene todas las etiquetas <li> Set coll_i = IEDoc.getElementsByTagName("i") 'recorremos todas las etiquetas <li> de nuestra colección For Each i In coll_i 'Si la className de la etiqueta <li> es "actionbar-item js-all-report-button" If i.className = "icon icon-rapports-probables" Then 'clicamos i.Click 'saliendo Exit For End If Next 'creamos nuestra colección que contiene todas las etiquetas <li> Set coll_Li = IEDoc.getElementsByTagName("li") 'recorremos todas las etiquetas <li> de nuestra colección For Each Li In coll_Li 'Si la className de la etiqueta <li> es "actionbar-item js-all-report-button" If Li.className = "pari-list-item pari-list-item--all js-all-report-button" Then 'clicamos Li.Click 'saliendo Exit For End If Next Set IE = Nothing Application.Wait Time + TimeSerial(0, 0, 3) Application.SendKeys "^a" Application.Wait Now + TimeValue("00:00:01") Application.SendKeys "^c" Application.Wait Now + TimeValue("00:00:01") Application.SendKeys "^w" Windows("Recuperar Web.xlsm").Activate Sheets("01 (2)").Select Range("" & [AM12].Value).Select ActiveSheet.Paste End Sub

3 respuestas

  1. dadacourse Mensajes publicados 143 Estado Miembro 3
     
    Gracias a la moderación, especialmente a bazfile, por haber facilitado la lectura del código... Buen día a todos.
    0
  2. dadacourse Mensajes publicados 143 Estado Miembro 3
     
    Hola a todos,
    Ya han pasado 7 días desde que publiqué mi solicitud de ayuda para un cambio de navegador y todavía no he recibido respuesta.... ¡¡AYUDA!!
    Por adelantado, muchas gracias.
    0
  3. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    Hola,

    Un internauta genial y muy simpático (olvidé su apodo y me disculpo con él) me había escrito un programa para Excel (a continuación la copia).

    aquí está tu internauta genial y muy simpático, quizás puedas contactarlo por MP

    https://forums.commentcamarche.net/forum/affich-31328488-vba-excel-clic-sur-bouton-page-internet-explorer

    para encontrar todas tus publicaciones, haz clic en la fecha en la parte superior izquierda debajo del título a la derecha de datacourse

    --
    @+ El Pivert
    0
    1. dadacourse Mensajes publicados 143 Estado Miembro 3
       
      Gracias… He encontrado su pseudónimo: PIJAKU
      0