Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Χαίρεται,

Έχω ένα φάκελο με χιλιάδες .txt files τα οποία έχουν ενσωματωμένο κώδικα html μέσα. Υπάρχει κάποιο πρόγραμμα (free) με το οποίο μπορώ να τα μετατρέψω όλα σε html αρχεία που να κρατούν (και άρα να δείχνουν) μόνο το html κομμάτι;

Ευχαριστώ

Δημοσ.
Μόλις τώρα, antbyron είπε

Μπορείς μέσω command line να μετατρέψεις τις καταλήξεις όπως θες. Σε καλύπτει κάτι τέτοιο;

Ψάξε στο νετ για τις εντολές.

Η δουλειά πρέπει να γίνει massively και δεν έχω admin privileges.

Δημοσ.

Μαζικά θα το κάνεις. Με μία εντολή θα μετατρέψεις ότι έχει ".txt" σε html. Δεν γνωρίζω για τα privileges αλλά στα windows δεν νομίζω να έχεις πρόβλημα.

Δημοσ.
1 λεπτό πριν, pmav99 είπε

Γράψε αναλυτικά τι έχεις και τι θες.

Έχω ένα φάκελο με 30,000+ αρχεία. Αυτά τα αρχεία υποτίθεται έχουν κατέβει ως .txt , αλλά στην πραγματικότητα δεν έχουν την ανωτερό κατάληξη. Μέσα σε αυτά τα αρχεία υπάρχει html κώδικας. Αυτό που ρωτάω είναι αν μπορώ massively (batch or whatever else is called) να μετατρέψω αυτά τα αρχεία σε html και να έχει μείνει μέσα μόνον ο κώδικας html και όχι το άλλο text που υπάρχει.

Τα κατέβασα με αυτόν τον Python κώδικα:

with open('~sample.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    for line in reader:
        fn1 = line[0]
        fn2 = re.sub(r'[/\\]', '', line[1])
        fn3 = re.sub(r'[/\\]', '', line[2])
        fn4 = line[3]
        saveas = '-'.join([fn1, fn2, fn3, fn4])
        # Reorganize to rename the output filename.
        url = 'https://www.sec.gov/Archives/' + line[4].strip()
        with open(saveas, 'wb') as f:
            f.write(requests.get('%s' % url).content)
            print(url, 'downloaded and wrote to text file')

 

Δημοσ. (επεξεργασμένο)

Βάλε όλα τα txt αρχεία σε ένα φακελο, μπες μέσα στο φάκελο από την γραμμή εντολών (δεξί κλικ στο φάκελο κρατώντας το πλήκτρο Shift και επέλεξε "open command window here") και δώσε:

rename *.txt *.html

Έτοιμος

Επεξ/σία από xaerialtwistx
Δημοσ. (επεξεργασμένο)

Μετοχούλες, μετοχούλες; :P

Αν τα αρχεία που έχεις κατεβάσει είναι SEC filings τότε το format τους λέγεται XBRL και είναι κάτι που θυμίζει XML και όχι HTML. Αν κατεβάζεις κάτι άλλο, άκυρο το σχόλιο

Από εκεί και πέρα, αν θες απλά αν αλλάξεις το όνομα των αρχείων μπορείς να το κάνεις είτε μέσω του script που έχεις (προσέθεσε ένα ".html" στο saveas) και ξανακατεβάζεις είτε μέσω command line (πχ αυτό που σου λέει ο @xaerialtwistx, διαφορετικά google it, it's trivial)

Αν θες να «καθαρίσεις» τα περιεχόμενα των αρχείων κρατώντας συγκεκριμένα tags, τότε θες κάποιον parser. Ανάλογα με τον τύπο των filings θα βρεις κάποια πράγματα online αλλά προσωπικά δεν είχα μείνει και πολύ ικανοποιημένος. Υπόψιν ότι το SEC δεν ελέγχει το validity των filings οπότε συχνά θα βρίσκεις λάθη.

Επεξ/σία από pmav99
Δημοσ.
8 λεπτά πριν, xaerialtwistx είπε

Βάλε όλα τα txt αρχεία σε ένα φακελο, μπες μέσα στο φάκελο από την γραμμή εντολών και δώσε:

Αναφορά σε κείμενο

rename *.txt *.html

Έτοιμος

Thanks aderfe. Επειδή τα αρχεία είναι χωρίς κατάληξη έγραψα το εξής: rename * *.html και δουλεύει.

Βέβαια, αν δεις μέσα, ναι μεν υπάρχει το html κομμάτι, άλλα έχει και garbage. Αυτό για να διορθωθεί θέλει περισσότερο κώδικα φαντάζομαι.

 

5 λεπτά πριν, pmav99 είπε

Μετοχούλες, μετοχούλες; :P

Αν τα αρχεία που έχεις κατεβάσει είναι SEC filings τότε το format τους λέγεται XBRL και είναι κάτι που θυμίζει XML και όχι HTML. Αν κατεβάζεις κάτι άλλο, άκυρο το σχόλιο

Από εκεί και πέρα, αν θες απλά αν αλλάξεις το όνομα των αρχείων μπορείς να το κάνεις είτε μέσω του script που έχεις (προσέθεσε ένα ".html" στο saveas) και ξανακατεβάζεις είτε μέσω command line (πχ αυτό που σου λέει ο @xaerialtwistx, διαφορετικά google it, it's trivial)

Αν θες να «καθαρίσεις» τα περιεχόμενα των αρχείων κρατώντας συγκεκριμένα tags, τότε θες κάποιον parser. Ανάλογα με τον τύπο των filings θα βρεις κάποια πράγματα online αλλά εγώ όταν τα ήθελα τα καθάρισα μόνος μου. Υπόψιν ότι το SEC δεν ελέγχει το validity των filings οπότε συχνά θα βρίσκεις λάθη.

Τα 10-Κs χρειάζομαι μόνο. Έχεις να προτείνεις κάτι σε parser;

Δημοσ.
14 λεπτά πριν, pmav99 είπε

Έχω γράψει δικούς μου parsers οπότε δεν έχω να προτείνω κάτι. Το project δεν είναι open sourced. 

OK, no worries. Θα βρω κάποιο τρόπο.

BTW, με τους πάρσερς μπορείς να κάνεις extract μια ολόκληρη παράγραφο στην οποία υπάρχουν κάποιες λέξεις κλειδιά;

Δημοσ. (επεξεργασμένο)

Αυτό που έχεις δεν είναι valid HTML/XML. Άνοιξε πχ ένα html στον browser και κάνε δεξί κλικ και show source. Θα δεις ότι είναι γεμάτο κοκκινάδια.

Το parsing μπορεί να γίνει με πολλούς τρόπους:

  • Μπορεί να γίνεται με ένα απλό regex (πχ ag)
  • Μπορεί να γίνεται με ένα πολύπλοκο regex.
  • Μπορεί να κάνεις την δουλειά σου με ένα κάποιον lenient XML/HTMLparser. Διάβασε εδώ για τέτοιους parsers: https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser
  • Μπορεί να χρειάζεσαι έναν XBRL parser ειδικά για 10-K parser

Όλα εξαρτώνται από το τι δεδομένα χρειάζεσαι να τσιμπήσεις από το filing. Parsing is not an exact science :)

edit

Αν επιτρέπεται, είναι για δουλειά ή για ακαδημαϊκούς λόγους;

Επεξ/σία από pmav99
Δημοσ.
3 λεπτά πριν, pmav99 είπε

Αυτό που έχεις δεν είναι valid HTML/XML. Άνοιξε πχ ένα html στον browser και κάνε δεξί κλικ και show source. Θα δεις ότι είναι γεμάτο κοκκινάδια.

Το parsing μπορεί να γίνει με πολλούς τρόπους:

  • Μπορεί να γίνεται με ένα απλό regex (πχ ag)
  • Μπορεί να γίνεται με ένα πολύπλοκο regex.
  • Μπορεί να κάνεις την δουλειά σου με ένα κάποιον lenient XML/HTMLparser. Διάβασε εδώ για τέτοιους parsers: https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser
  • Μπορεί να χρειάζεσαι έναν XBRL parser ειδικά για 10-K parser

Όλα εξαρτώνται από το τι δεδομένα χρειάζεσαι να τσιμπήσεις από το filing. Parsing is not an exact science :)

edit

Αν επιτρέπεται, είναι για δουλειά ή για ακαδημαϊκούς λόγους;

Academic reasons

Δημοσ.

Επειδή δεν έχω καταλάβει αν είσαι σε windows : αν εισαι σε unix είναι παρά πολύ εύκολο να το κάνεις με shell script. Βρίσεις το start html tag και κρατάς γραμμές μέχρι να βρεις το ending html tag. Το output το βγάζεις σε αρχείο που θέλεις.

Με άλλα λόγια grep και regex is the way to go. 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...