Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 26 su 26
  1. #21
    Li ti devi studiare il form di ricerca:

    http://www.eurometis.it/jobalert/consulta.metis

    (banalmente click col destro -> visualizza sorgente)

    Guarda a cosa punta il form (action), quali sono i campi e come devono essere valorizzati per ottenere i risultati che ti interessano.

    L'open diventerà:

    codice:
    objHTTP.open "POST", "http://www.eurometis.it/jobalert/risultati.metis", False
    mentre nel send devi concatenare i campi con i valori che vuoi impostare come parametri di ricerca (devi creare la stringa da inviare come se dovessi passare una querystring).
    xxx

  2. #22
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    OK.

    Form.asp
    codice:
    <%
    If Request.Form("stampa")="stampa" Then
        Response.Write ("Il valore di field1 è: " & Request.Form("ja.IdRegione"))
    Else
    %>
    
    <FORM METHOD="POST">
    <INPUT type="text" NAME="ja.IdRegione" VALUE="12" />
    <INPUT TYPE="submit" name="stampa" value="stampa" />
    </FORM>
    
    <%
    End If
    %>

    test.asp:
    codice:
    <%
    
    Set objHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
    objHTTP.open "POST", "http://www.eurometis.it/jobalert/risultati.metis", False 
    
    objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    
    objHTTP.send "ja.IdRegione=12&stampa=stampa"
    
    if objHTTP.Status = 200 Then
        Response.write (objHTTP.responseText )
    Else
        Response.Write ("Si è verificato un errore. Status code: " & objHTTP.status)
    End If
    
    Set objHTTP = Nothing
    
    %>
    Risponde con: Il valore di field1 è: 12

  3. #23
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Dunque ci sarei riuscito almeno in parte.
    Infatti questo codice mi restituisce le offerte di lavoro senza passare per il form:

    codice:
    Set objXMLDOC = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
    
    //TIMEOUTS
    lResolve = 8 * 1000 //Timeout in millisecondI
    lConnect = 8 * 1000
    lSend = 10 * 1000
    lReceive = 10 * 1000
    objXMLDOC.setTimeouts lResolve, lConnect, lSend, lReceive
    
    //CHIAMATA
    objXMLDOC.open "POST", "http://www.eurometis.it/jobalert/risultati.metis", False
    objXMLDOC.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    
    objXMLDOC.setRequestHeader "action", "updateMediaData"
    DataToSend = "ja_IdRegione=12&ja.IdRegione=12"
    objXMLDoc.send(DataToSend)
    
    response.write objXMLDoc.status
    response.write "
    
    " & vbcrlf & vbcrlf
    response.write objXMLDoc.responseText
    Però ho i seguenti problemi:
    1) Non filtra solo x regione Lazio
    2) Devo importare questi dati in un db mysql

    Come risolvo?
    Grazie---

  4. #24
    Guardando bene il form della pagina di ricerca l'action punta qui:

    http://www.eurometis.it/jobalert/consulta.metis

    e non a

    http://www.eurometis.it/jobalert/risultati.metis

    Questo inoltre è superfluo nei dati da inviare:

    ja_IdRegione=12&

    Non mi è stato possibile provare direttamente il tuo script (sono dietro un proxy che blocca le chiamate xmlhttp), ma provando con un form così funziona (è esattamente la stessa cosa che dovrebbe fare lo script):

    codice:
    <form action="http://www.eurometis.it/jobalert/consulta.metis" method="post">
    
    <input type="text" name="ja.IdRegione" value="12" />
    
    <input type="submit" value="Cerca" />
    
    </form>
    Ora che hai la pagina completa dovrai farne un parsing per estrarre le informazioni che ti servono da inserire nel tuo database.
    Per questo ti consiglio di studiarti le regular expression.

    Ti preannuncio inoltre un altro problema che dovrai affrontare: i risultati sono impaginati, quindi dovrai fare più chiamate per recuperare tutti i dati.

    Pare che lui si salvi i dati di ricerca in una sessione in consulta.metis e poi li usi in risultati.metis come filtro, non ripassando mai da consulta.metis quando cambi pagina.

    Questo significa che:
    - la prima chiamata dovrà essere fatta con lo script che hai postato + le modifiche indicate sopra
    - le chiamate per recuperare le pagine successive dovranno essere fatte a

    http://www.eurometis.it/jobalert/risultati.metis

    questa volta in GET, con:

    DataToSend = "page=N"

    dove N è il numero della pagina che vuoi recuperare.

    Per le chiamate GET questi non servono:

    codice:
    objXMLDOC.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    objXMLDOC.setRequestHeader "action", "updateMediaData"
    Il numero delle pagine lo devi recuperare (sempre con le regular expression) dal fondo della pagina dopo la prima interrogazione, ossia dalla stringa:

    Risultati: 21 - 40 di 62

    Banalmente 62 / (40 - 21 + 1) arrotondato per eccesso.
    xxx

  5. #25
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Visto che il form che hai postato funziona a questo punto semplifico e punto direttamente dalla mia pagina web a quella di destinazione... magari nel tempo mi cimenterò nella seconda fase del progetto ossia importazione in db, regular expression, paginazione, etc.

    Grazie per il momento.

  6. #26
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Ciao.

    Qualcuno può spiegarmi perchè lo script ASP proposto in questa discussione funziona soltanto a pieno con IE 8, a volte con Firefox e non funziona con Chrome, Safari ed Opera?

    Grazie-

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.