Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι
  • Σελίδα:
  • 1
  • 2
  • 3

ΘΕΜΑ: Πρόβλημα decoding με urllib

Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1443

  • kostis
  • Το Άβαταρ του/της kostis
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 25
Γειά χαρά κ πάλι..
Χρησιμοποιώ το urllib σε python 2.6 για να αποθηκεύσω το sourcecode σε ένα txt.
δηλαδή:
import urllib
 sock=urllib.urlopen('www.kapoiosite.gr')
 htmlSource=sock.read()
 sock.close()
 file1 = open('sourcecode.txt','a')
 file1.write(htmlSource)
 file1.close
Σε αυτό το sourcecode.txt χρησιμοποιώ το find για να βρώ συγκεκριμένες πληροφορίες που θέλω.
Μόλις τυπώνει τη πληροφορία που βρίσκει, εμφανίζει περίεργους χαρακτήρες, όπως ΕΙΔΗΣΕΙΣ.
Παρόλα αυτά, στο sourcecode.txt εμφανίζει κανονικά τα ελληνικά.

Τί πάει στραβά;;

Ευχαριστώ
Τελευταία διόρθωση: 12 Χρόνια 9 Μήνες πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1444

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Αν μας έλεγες και ποιο είναι το «www.kapoiosite.gr», θα βοηθούσε.

Τέλος πάντων:
EDIT
Άνοιξε το «www.kapoiosite.gr» με έναν browser και διάβασε τον κώδικα της ιστοσελίδας. Βρες το σημείο
content="text/html; charset=windows-1253"
και δες τι κωδικοποίηση έχει π.χ. «windows-1253».

Άλλαξε τον κώδικά σου με αυτό:
import urllib
theurl = 'www.kapoiomeros.gr'
sock=urllib.urlopen(theurl)
htmlSource = sock.read()
dhtmlSource = htmlSource.decode('windows-1253')
sock.close()
 
file1 = open('sourcecode.txt','wb')
file1.write(dhtmlSource.encode('utf-8'))
file1.close()


Σ' εμένα δουλεύει σε Ubuntu
Γράφω σε Python 3
Τελευταία διόρθωση: 12 Χρόνια 10 Μήνες πριν από kamar. Αιτία: Διόρθωση τυπογραφικών λαθών.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1445

  • kostis
  • Το Άβαταρ του/της kostis
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 25
www.tvprogramma.gr/ είναι το site.

windows-1253 ειναι η κωδικοποίηση που χρησιμοποιεί.

Τροποποίησα τον κώδικα όπως αναφέρεις, αλλά στη γραμμή του
dhtmlSource = htmlSource.decode('windows-1253')
εμφανίζει το παρακάτω μήνυμα λάθους:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 346: character maps to <undefined>

Δοκίμασα να αλλάξω και την κωδικοποίηση στον mozilla, αλλά δε βοήθησε..
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1446

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Απ' ότι βλέπω χρησιμοποιεί utf-8.
ΠΡΟΣΟΧΗ Spoiler! [Πατήστε για επέκταση]


Σ' εμένα δούλεψε κανονικά χωρίς πρόβλημα το παρακάτω:
import urllib
theurl = 'http://www.tvprogramma.gr'
sock=urllib.urlopen(theurl)
htmlSource = sock.read()
dhtmlSource = htmlSource.decode('utf-8')
sock.close()
 
file1 = open('sourcecode.txt','wb')
file1.write(dhtmlSource.encode('utf-8'))
file1.close()

EDIT
Αν πάλι δεν σου γράφει δοκίμασε αυτό:
file1 = open('sourcecode.txt', encoding='utf-8', 'wb')

Κανονικά το τελευταίο πρέπει να δουλέψει (ακόμη και σε windows).
Γράφω σε Python 3
Τελευταία διόρθωση: 12 Χρόνια 10 Μήνες πριν από kamar. Αιτία: Διόρθωση τυπογραφικού λάθους
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1447

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Επίσης αν έχεις πρόβλημα να βρεις κάποια κωδικοποίηση χαρακτήρων, ένα καλό εργαλείο είναι το chardet.

Το αποτέλεσμα για την ιστοσελίδα που έδωσες είναι:
ΠΡΟΣΟΧΗ Spoiler! [Πατήστε για επέκταση]
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1448

  • kostis
  • Το Άβαταρ του/της kostis
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 25
Το
file1 = open('sourcecode.txt', encoding='utf-8', 'wb')
ειναι στην python 3;
χρησιμοποιώ 2.6 και μου χτυπάει TypeError.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1449

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
EDIT
Έχεις δίκιο. Το συγκεκριμένο το έχω χρησιμοποιήσει σε Python 3.
Τα υπόλοιπα scripts τα δοκίμασα με Python 2.6.
Γράφω σε Python 3
Τελευταία διόρθωση: 12 Χρόνια 10 Μήνες πριν από kamar. Αιτία: Προσθήκη σχολίου
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1450

  • kostis
  • Το Άβαταρ του/της kostis
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 25
Πρεπει να ειναι χωρις το encoding
file1 = open('sourcecode_tv.txt','utf-8','a')
Αλλα και πάλι μου λέει TypeError: an integer is required
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1451

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
kostis έγραψε:
Πρεπει να ειναι χωρις το encoding
file1 = open('sourcecode_tv.txt','utf-8','a')
Αλλα και πάλι μου λέει TypeError: an integer is required
Γιατί θέλεις να γράψεις σε append mode;

Θα το δοκιμάσω και σε win και θα σου γράψω. Αλλά όχι απόψε!
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1452

  • kostis
  • Το Άβαταρ του/της kostis
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 25
Θέλω να κάνει append παραπάνω από 1 html κώδικα στο sourcecode.txt, γι'αυτό σε τέτοιο mode.

Το περίεργο με το decoding, είναι ότι εξαρχής τα περισσότερα ελληνικά τα διαβάζει κανονικά, εκτός από ορισμένες λέξεις που βγάζει περίεργους χαρακτήρες.

Πολύ καλό το encoding detector!

Ευχαριστώ πολύ για τη βοήθεια.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1453

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Μόλις δοκίμασα το script σε windows xp. Δουλεύει μια χαρά σε write mode.
Επισυνάπτω τα αρχεία κώδικα και εξόδου.

Συνημμένο αρχείο:

Όνομα Αρχείου: kode.zip
Μέγεθος αρχείου:15 KB

Δουλεύει και σε append mode.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1454

  • kostis
  • Το Άβαταρ του/της kostis
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 25
Σου επισυνάπτω το αρχείο που μου έστειλες με κάποιες γραμμές κώδικα παραπάνω, όπου βρίσκει από στο html κάποιο pattern ('fore_color_red') και τυπώνει την ώρα και το τί έχει εκείνη την ώρα.
Μόλις το τρέξεις, θα δείς ότι τους περισσότερους χαρακτήρες δεν τους διαβάζει...
(υπόψιν, έχω αλλάξει λίγο και το url)

Συνημμένο αρχείο:

Όνομα Αρχείου: tes001.rar
Μέγεθος αρχείου:0 KB
Τελευταία διόρθωση: 12 Χρόνια 10 Μήνες πριν από kostis.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1455

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Αν κατάλαβα καλά δεν σου διαβάζει μερικά στοιχεία από το πρόγραμμα της tv.
Απ' ότι βλέπω δεν είναι όλο το πρόγραμμα σε κόκκινο. Μήπως αυτή είναι η διαφορά;
EDIT
Π.χ. βλέπω fore_color_black, fore_color_blue κ.α.
Ίσως πρέπει να βρεις άλλο αλγόριθμο για «βγάλεις» το πρόγραμμα.
Γράφω σε Python 3
Τελευταία διόρθωση: 12 Χρόνια 10 Μήνες πριν από kamar. Αιτία: Διόρθωση εμφάνισης
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1456

  • kostis
  • Το Άβαταρ του/της kostis
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 25
Το συγκεκριμένο pattern βρίσκει συγκεκριμένες πληρφορίες απ'το πρόγραμμα που χρειάζομαι. Αλλα χρώματα βρίσκουν διαφορετικά είδη προγράμματος (πχ.ταινές, σειρές).
Αλλά για καλό κ για κακό δοκίμασα και με άλλα patterns και εμφανίζει πάλι το ίδιο πρόβλημα.

Σου στέλνω τον ίδιο κώδικα, προσθέτοντας μια λίστα στην οποία θα γίνεται append κάθε στοιχείο του προγράμματος.
Ενώ η λίστα περιέχει unicode στοιχεία, αν εκτυπώνω καθένα από αυτά ξεχωριστά, εμφανίζονται σωστά οι χαρακτήρες..
Αυτό που προσπαθώ να πετύχω είναι η λίστα list_with_program να περιέχει str και όχι unicode.

Συνημμένο αρχείο:

Όνομα Αρχείου: tes001_2011-05-21.rar
Μέγεθος αρχείου:0 KB
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Πρόβλημα decoding με urllib 12 Χρόνια 10 Μήνες πριν #1457

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Αν και δεν συνεισφέρω κάτι στο πρόβλημα σου, μήπως είναι πιο απλό να χρησιμοποιήσεις Python3? Έχω την αίσθηση ότι εκεί δε θα έχεις τέτοια προβλήματα...
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
  • Σελίδα:
  • 1
  • 2
  • 3
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.313 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου