Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - vaeVictis

Pagine: [1]
1
Ciao a tutti.

Come premesso nel titolo ho un problema nel recupero e parsing di una pagina HTML.
In breve, rispetto al codice HTML che posso vedere con le apposite funzioni di Chrome, il mio programma recupera il codice HTML della pagina, ma le ore in un determinato campo vengono sfasate con un delay negativo di un'ora.

Sono giorni che ci sto sbattendo la testa e non riesco proprio a capire da cosa possa dipendere.
Spero possiate aiutarmi a capire da cosa possa dipendere.

Grazie in anticipo :)

Vi lascio il link sito in questione, che è questo calendario economico
E il codice con cui prelevo tutte le informazioni sui singoli eventi economici, in versione ridotta in modo che possiate vedere l'orario e il nome dell'evento per poterlo poi (se avrete la pazienza di aiutarmi) vedere sul sito al link qui sopra:


from __future__ import print_function
from bs4 import BeautifulSoup

import regex as re
import mechanize
from datetime import datetime

URL_PAGE = 'https://www.myfxbook.com/forex-economic-calendar'

# recupero codice html     
br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]       
html_content = br.open(URL_PAGE).read()

# preparazione della zuppa
soup = BeautifulSoup(html_content, "html.parser")

#regex compilate per l'estrazione dei dati di interesse
cal_row_re  = re.compile(r'^calRow.*')              # <-- nome dell'evento
date_re     = re.compile(r'\w+\s?\d+:\d+')         # <-- data

# trovo tuttoi gli eventi che mi interessano
CalEvents = soup.find_all(id=cal_row_re)

# per ogni evento stampo data e nome separati da punto e virgola
for singleEvent in CalEvents:
    date = singleEvent.find(text=date_re).strip()
    eventName = singleEvent.find(class_='noUnderline').get_text().strip()
    print(date, eventName, sep = ';')



2
Ciao a tutti.
Apro la mia prima discussione, sperando di non aver toppato la scelta della sezione e certo della vostra disponibilità :)

Sto iniziando a sviluppare una piccola applicazione che servirà per interagire con il profilo personale di un account su un forum.
In particolar modo, sono interessato a sviluppare qualcosa che possa semplificare la gestione dei messaggi privati.


Non ho particolari problemi a gestire il login con il modulo mechanize.
La motivazione per cui ho aperto la discussione è invece legata alla scelta del pattern per poter ottenere il più facilmente possibile, in futuro, l'estensione di questa piccola applicazione a differenti forum.


Per chiarire, faccio un esempio riferito a due forum, questo e il forum italiano di Ubuntu.

Supponiamo di voler gestire il login per entrambi i forum.
A prescindere dal differente indirizzo... le due form per il login hanno differenti controlli e, una volta selezionata quella opportuna, per poter fare il login dovrò, rispettivamente, fare qualcosa del tipo
Citazione
brForumPython.form['user'] = 'vaeVictis'
brForumPython.form['passwrd'] = '*******************'
oppure
Citazione
brForumUbuntu.form['username'] = 'vaeVictis'
brForumUbuntu.form['password'] = '*******************'
br.submit()

Come potete vedere, cambia il nome dei controlli... e con loro cambieranno anche molte altre cose, sebbene ovviamente le azioni da fare saranno sempre le stesse (ovvero il login, la cancellazione dei messaggi, il download dei messaggi in qualche formato... e via dicendo).

Con l'intento di prendere dimestichezza con l'argomento del design pattern della programmazione ad oggetti, e mentre mi leggo un bel libro a riguardo, stavo pensando di applicarmi a questo problema.

... voi con che pattern mi consigliereste di affrontare questo problema?

Spero di non essere stato poco chiaro. Se così non fosse, cercherò di fare chiarezza in un secondo momento. Fatemi sapere :)

Grazie in anticipo!
Ciao!

3
Benvenuto e regolamento / Bella per tutti! :)
« il: Giugno 18, 2014, 12:18 »
Come da titolo, dopo alcuni anni in cui bene o male programmo in Python, mi sono finalmente deciso ad iscrivermi a questo forum, che sembra avere dei contenuti davvero molto interessanti.

Un saluto a tutti  :ok:

Pagine: [1]