Profilo di biagiodistefano

Nome biagiodistefano
Indirizzo email n/a
Messaggi4
  • Re: Requests.post continua a darmi come response 405 (Method not allowed)
    Forum >> Principianti
    (scusatemi ma sto avendo problemi con la formattazione del post e non riesco ad aggiustarlo, mi si scombina sempre!)
  • Re: Requests.post continua a darmi come response 405 (Method not allowed)
    Forum >> Principianti
    Dunque, piccoli progressi. Ma credo mi sfugga qualcosa.
    Sto usando il modulo mechanicalsoup. Questo è il codice:

    import mechanicalsoup, re

    def fetchfile(query):

    url = "http://www.italgiure.giustizia.it/sncass/"

    browser = mechanicalsoup.Browser()
    page = browser.get(url)
    search_form = page.soup.find("form", {"id": "z-form"})
    search_form.find("input", {"id":"searchterm"})["value"] = query
    response = browser.submit(search_form, url)

    print(response)

    print("1235" in response.text)

    fetchfile("1235/2012")
    Il passo avanti è che response è un bellissimo 200, ma purtroppo al rapido controllo "1235" in response.text ottengo False.


    Che l'input form sia quello giusto; sono sicuro al 99%:

    <input accesskey="p" autocomplete="off" class="keylist" data-arg="text" data-placeholder=" Parole o Numero/Anno sentenza" data-role="query" id="searchterm" style="width:16em; border:solid 1px #a9a9a9; border-radius:4px; vertical-align:bottom; /*font-size:.9em*/" tabindex="0" title="ricerca per parole o estremi"/>
    Infatti, guardando il sorgente pagina dal browser viene graficamente evidenziato proprio quell'elemento.

    Ho le seguenti perplessità:

    - può essere che non funziona perché l'input form non ha come attributo nativo "value"? ho visto che in altri input form c'è, ma dovrebbe essere un argomento passato di default col submit, o sbaglio?

    - ipotizzando per assurdo che il submit vada a buon fine, sarà mica che il mio insuccesso con questo metodo è collegato al fatto che non viene generata una nuova pagina (il link rimane invariato ma gli elementi compaiono sotto), e quindi il risultato c'è ma non lo vedo? Mi sembra strano, perché quando eseguo l'operazione manualmente, nel sorgente della pagina successivo alla ricerca, compaiono gli elementi html dei risultati.

    Che mi sto perdendo? :confused:



    --- Ultima modifica di biagiodistefano in data 2016-08-01 22:47:28 ---

    --- Ultima modifica di biagiodistefano in data 2016-08-02 02:09:44 ---
  • Re: Requests.post continua a darmi come response 405 (Method not allowed)
    Forum >> Principianti
    Ciao, grazie per la risposta.
    Volevo infatti provare con mechanize, non foss'altro che a quanto vedo non è supportato per python3 (dopo l'import dà errore: ImportError: No module named '_version')
    Ho appena visto che però Mechanize è stato "unito" con BeautifoulSoup per dar vita a "MechanicalSoup". Ora provo a studiarmelo e vedere che ne cavo.

    Posterò il risultato (oppure un'altra richiesta di aiuto :dont-know:)
  • Requests.post continua a darmi come response 405 (Method not allowed)
    Forum >> Principianti
    Ciao a tutti,
    premetto che non sono un programmatore ma un giurista con un hobby alternativo (almeno per la categoria).

    Ciò detto, mi trovo davanti al seguente problema.

    Vorrei automatizzare la ricerca delle sentenze della cassazione che ora sono disponibili gratuitamente online. Il sito è quello riportato nel codice.

    import requests

    url = "http://www.italgiure.giustizia.it/sncass/"

    test_query = "1235/2012"

    payload = {"searchterm": test_query, "estremi": ""}

    resp = requests.post(url, payload)

    print(resp)

    Continuo, come da titolo, a ricevere errore 405. Non capisco dove sia l'errore nel codice.

    Una volta risolto ciò, avrò un altro problema: i risultati compariranno sotto la ricerca, senza caricare una nuova pagina. A quel punto come fare per fare scraping? Devo usare Session()?

    Grazie in anticipo e perdonate l'ignoranza!