Profilo di leon

Nome leon
Indirizzo email n/a
Messaggi8
  • Re: Ottenere una parametro che varia quasi istantaneamente da url
    Forum >> Principianti
    Missione compiuta, ho modificato nel find per tag ".click()" invece che send_keys(Keys.ENTER) :party: :birrame: :batti5:
    Grazie per il sostegno psicologico :D
  • Re: Ottenere una parametro che varia quasi istantaneamente da url
    Forum >> Principianti
    Ciao Daniele, avevo amaramente intuito che avessi iniziato da xyz piuttosto che dall'abc XD.
    In ogni caso, ho abbandonato la "via rigorosa" dopo aver scoperto selenium, forse riesco comunque a raggiungere la meta in maniera più semplice.

    Sono riuscito a configurarlo in modo tale che chrome apra la pagina ed effettui un screenshot della stessa.

    Il problema ora è che a quel dato che mi interessa non ci si arriva tramite link (sarebbe gia risolta la cosa), ma hanno pensato bene di metterlo come pop up (credo si dica toggle), insomma non ti porta ad un'altra pagina ma si apre una finestra.

    Tu sei pratico di Selenium e web driver? Che comando potrei dare per identificare quel pulsante e dirgli di cliccarci? Ho provato qualche combinazione tipo:

    driver.find_element_by_tag_name("li").send_keys(Keys.ENTER)
    driver.find_element_by_css_selector('#menu > li:nth-child(3)').send_keys(Keys.ENTER)
    Qualche idea :question: Ti allego l'immagine del pulsante e dell'ispezione.
    Dai dovrebbe essere l'ultimo scoglio ahah
  • Re: Ottenere una parametro che varia quasi istantaneamente da url
    Forum >> Principianti
    Aggiornamento XD
    Ho deciso di partire da qualcosa di più semplice, ho provato ad estrarre del testo da siti come gazzetta.it o diretta.it (una partita a caso), da questi due riesco ad estrarre la porzione di testo, da quel maledetto sito NO.

    Ad esempio l'istruzione data per gazzetta.it è la seguente.

    for body in response.css("body"):
             yield{
                  'RISULTATO': body.css("#home > section.footer > div.get-in-touch-container > \
                   div > div.section-footer-get-in-touch-address > p > span.p-iva").extract_first(),
             }
    Mi sono limitato ad ispezionare l'elemento testo, e copiare il "JS PATH" ed incollarlo dopo body.css, analoga cosa per diretta.it.

    Allego il pdf con l'ispezione dei 3 siti.

    Dall'ispezione, quello che mi salta all'occhio è che i 2 (che funzionano) presentano una struttura del tipo : elemento+class+testo, l'altro presenta invece: elemento+class+style+testo.

    Potrebbe essere questa a ragione?

    L'istruzione data per estrarre, e quindi il JS PATH del terzo (che non funziona) è:

    for body in response.css("body"):
             yield{
                   'RISULTATO': body.css("body > #root > section > section:nth-child(2) > \
                    section:nth-child(4) > footer > div.tac").extract_first(),
              }


    Cosa dovrei modificare?

    Grazie
  • Re: Ottenere una parametro che varia quasi istantaneamente da url
    Forum >> Principianti
    quindi sono ben lontano dalla soluzione? :O
    Almeno sono sulla strada giusta? :question:

    Gli esempi trovati in rete erano piuttosto semplici, questo sembra una scatola cinese XD
  • Re: Ottenere una parametro che varia quasi istantaneamente da url
    Forum >> Principianti
    Ciao, girando il web e guardando un po' di tutorial ho capito che il dato che mi interessa è all'interno di un javascript code, pertanto ho creato questo codice che usa SCRAPY+SPLASH

    import scrapy
    from scrapy_splash import SplashRequest
    
    class QuotesJSSpider(scrapy.Spider):
        name = 'quotesjs'
    
        def start_requests(self):
        	yield SplashRequest(
                #  url = 'http://quotes.toscrape.com/js',
                #  url = 'https://www.tronbet.io/static/js/main.53d1ebc2.js',
                 url = 'https://www.tronbet.io/#/',
                 callback = self.parse,
            )
    
        def parse(self, response):
    al di sotto di "def parse" dovrei introdurre l'istruzione per estrarre quel parametro, dovrei usare "response.css" credo.

    Potresti aiutarmi in quest'ultimo passaggio? quale istruzione dovrei scrivere? Ti allego l'immagine dell'ispezione del codice (in rosso il parametro che mi servirebbe).

    Grazie.
  • Re: Ottenere una parametro che varia quasi istantaneamente da url
    Forum >> Principianti
    Si scusami eccolo:
    import bs4
    import requests
     
    def estrapola_sorgente(url):
        if 'https://' in url:
            sorgente = requests.get(url).text
            return(sorgente)
        else:
            return("L url non e valido")
        
    def estrapola_h1(sorgente):
        soup = bs4.BeautifulSoup(sorgente,"html.parser")
        elenco = soup.findAll('h1')
        if elenco:
            for a in elenco:
                print(a)
        else:
            print("Non ci sono h1 in questa pagina")
     
    lista_siti = [
        'https://tronbet.io/#/',
        'http://www.example.org',
        ]
     
    for sito in lista_siti:
        sorgente = estrapola_sorgente(sito)
        print('Elenco degli h1 di ' + sito)
        estrapola_h1(sorgente)
        print()

    Tramite ispeziona (ti allego l'immagine) trovo la variabile ma non riesco a capire come farla stampare, tiene presente che sono alle prime armi sia con html che python, di programmazione classica mi intendo ma questo è arabo per me :confused:

    Grazie

  • Re: Ottenere una parametro che varia quasi istantaneamente da url
    Forum >> Principianti
    Ciao, ho già fatto qualche prova, diciamo che se il codice sorgete é un HTML unico riesco, questo mi sembra abbia delle nidificazioni. Potresti darmi qualche suggerimento?
    Grazie
  • Ottenere una parametro che varia quasi istantaneamente da url
    Forum >> Principianti
    Buonasera a tutti, sono alle prime armi, qualcuno potrebbe spiegarmi come ottenere un parametro tramite richiesta web?
    Vorrei creare delle statistiche su un parametro in particolare (cerchiato in rosso), allego un immagine per chiarire.

    Questo parametro cambia dinamicamente, si trova nell home del sito (nell'allegato si vede) e facendo click su "dividends".

    So che devo usare requests.get() , bs4.BeautifulSoup() e soup.findAll, ma non riesco ad ottenere quel parametro.

    Qualcuno può aiutarmi?

    Grazie