gon1332 Δημοσ. 7 Ιανουαρίου 2016 Δημοσ. 7 Ιανουαρίου 2016 Καλημέρα σας, ξεκίνησα να ασχολούμαι λιγάκι με parsing html περιεχομένου έτσι ώστε να βγάζω κάποια χρήσιμη πληροφορία αν και όποτε μπορώ. Η όλη ιδέα είναι να φτιάξω scripts τα οποία θα φτύνουν πληροφορία την οποία θα μπορούσα να την εμφανίζω και στο status bar του tmux για να μην κάνω polling στον browser. Για αρχή σκέφτηκα να σκανάρω τη σελίδα που έχει τα μηνύματα του χρήστη στο insomnia, όπου φαίνονται τα πιο πρόσφατα. Με ενδιαφέρει η πρώτη σελίδα μόνο. Αυτή τη σελίδα έχει κάποια read και κάποια unread posts. Σύνολο 25. Με τα εργαλεία του Chrome βρήκα ποιό <div> tag (class='ipsLayout_content') περιέχει τον πίνακα με τα rows <tr> (class='_recordRow __topic __tidXXXXXXX unread expandable') από posts. Αν το post είναι read, τότε απλά δεν έχει το 'unread' επάνω. Το θέμα είναι ότι όλα γίνονται μια χαρά, το authentication, το κατέβασμα και το παρσάρισμα. Το περίεργο είναι πως σε αυτό το html content που κατεβαίνει, δεν υπάρχει το unread πουθενά, ενώ υπάρχουν posts που είναι unread. Δε μπορώ να καταλάβω τι φταίει. Ο κώδικας είναι στο github, όπου έχω θέσει και το αντίστοιχο issue. Καμμιά ιδέα;
gon1332 Δημοσ. 7 Ιανουαρίου 2016 Μέλος Δημοσ. 7 Ιανουαρίου 2016 Μμμ. Μπορεί. Εγώ από το source-viewer (C-u) και από το pane με τα Elements (F12) το είδα. Υπέθεσα αυτό που βλέπω θα παίρνει. Αν το βάζουν από πάνω με κάποιο άλλο script, τότε είναι λίγο ακατόρθωτο αυτό που πήγα να κάνω. Μία εναλλακτική που δοκίμασα ήταν να βρω τις εικονούλες με τα αστεράκια (μπλε/unread και ανοιχτό σκιά/read) ώστε μέσω τον ονομάτων τους να κάνω τη δουλειά μου. Τα βρήκα, είχαν ονόματα που τα ξεχώριζες, αλλά ούτε αυτά "κατεβαίνουν". Το <img /> λείπει, όπως και το unread.
parsifal Δημοσ. 7 Ιανουαρίου 2016 Δημοσ. 7 Ιανουαρίου 2016 Είδα τον κώδικα στο Github. Είμαι κατά 99,999% σίγουρος ότι δεν υποστηρίζεται login στο Insomnia μέσω HTTP Basic Auth. Για του λόγου το αληθές, δοκίμασε να αλλάξεις το target URL σου σε κάποιο που απαιτεί σίγουρα logged in status π.χ. σε: http://www.insomnia.gr/index.php?app=members&module=messaging και δες τί σου επιστρέφει το forum... ΥΓ: Χρόνια πολλά, καλή χρονιά! 1
gon1332 Δημοσ. 7 Ιανουαρίου 2016 Μέλος Δημοσ. 7 Ιανουαρίου 2016 Ευχαριστώ. Επίσης καλή χρονιά! Το δοκίμασα. Όντως δε με αφήνει. Error 403. Πως θα μπορούσα να κάνω το authentication;
parsifal Δημοσ. 7 Ιανουαρίου 2016 Δημοσ. 7 Ιανουαρίου 2016 Δες ένα παράδειγμα με Requests library που ήδη χρησιμοποιείς: https://kazuar.github.io/scraping-tutorial/ 1
nilosgr Δημοσ. 8 Ιανουαρίου 2016 Δημοσ. 8 Ιανουαρίου 2016 Νομιζω καλυτερα να χρησημοποιησεις κατι τετοιο που τρεχει και js 1
gon1332 Δημοσ. 8 Ιανουαρίου 2016 Μέλος Δημοσ. 8 Ιανουαρίου 2016 @parsifal Θα το δοκιμάσω. @nilosgr Η αλήθεια είναι ότι δυσκολεύομαι να το ακολουθήσω καθώς έχει πολλούς ορισμούς άγνωστους για εμένα. Νομίζω το είχες αναφέρει και πιο παλιά σε κία κουβέντα που είχαμε. Μπορείς να μου πεις επιγραμματικά πως θα μπορούσε αυτό το εργαλείο να βοηθήσει για το σκοπό μου;
nilosgr Δημοσ. 9 Ιανουαρίου 2016 Δημοσ. 9 Ιανουαρίου 2016 @gon1332 ειναι framework για unit tests σε web pages (κυριως με js/flash) και κανει simulate τη συμπεριφορα του χρηστη καποιον browser (της επιλογης σου) και αυτοματοποιει κλικς, mouse hover, scrolling ή οτι αλλο μπορεις να κανεις στον browser κι εχεις προσβαση στο source code της σελιδας. Υπαρχει και αυτο σε ruby @groot Το Mechanize δεν υποστηριζει js, αρα παλι το ιδιο προβλημα θα εχει
gon1332 Δημοσ. 21 Απριλίου 2016 Μέλος Δημοσ. 21 Απριλίου 2016 Δες ένα παράδειγμα με Requests library που ήδη χρησιμοποιείς: https://kazuar.github.io/scraping-tutorial/ Τι όνομα έχετε δώσει για το csrf token; Νομίζω auth_key: <input type='hidden' name='auth_key' value='880ea6a14ea49e853634fbdc5015a024'/> Σωστά;
pmav99 Δημοσ. 21 Απριλίου 2016 Δημοσ. 21 Απριλίου 2016 @gon1332 Για τέτοια πράγματα selenium. Δεν είναι τίποτα, απλά είναι λίγο verbose τα ονόματα των μεθόδων. Το μόνο καινούριο είναι τα waits που έχει (για να εμφανιστεί κάποιο element στο dom). http://selenium-python.readthedocs.org/getting-started.html
gon1332 Δημοσ. 21 Απριλίου 2016 Μέλος Δημοσ. 21 Απριλίου 2016 Μια χαρά. Θα κοιτάξω σίγουρα, γιατί είδα πως και με τον προηγούμενο τρόπο δεν έβλεπα κάποιες κλάσεις.
παπι Δημοσ. 21 Απριλίου 2016 Δημοσ. 21 Απριλίου 2016 Κατέβασε το wireshark, δες το handshake του login και κάντο emulate. Αλλιώς θες βιβλιοθήκη που κάνει emulate έναν browser.
gon1332 Δημοσ. 21 Απριλίου 2016 Μέλος Δημοσ. 21 Απριλίου 2016 Από την περιγραφή που έδωσε ο nilosgr για το selenium φαίνεται πως θα έχω λυμένα αυτά τα θέματα. Δεν το έχω κοιτάξει ακόμη όμως.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα