Kodowanie i requests

Odpowiedz Nowy wątek
2016-07-10 21:29

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Cześć.
Mam skrypt, który pobiera mi zawartość strony www i zapisuje do pliku txt. Strona kodowana jest w iso-8859-2 i jeśli próbuję normalnie to zapisać, dostaję błąd "UnicodeEncodeError: 'ascii' codec can't encode character u'\xb3' in position ...". Jak wykorzystam kodowanie utf-8, to zapisuje bez błędu, ale w pliku są 'krzaczki' typu: ¿ ³. Jak temu zaradzić? Przeczytałem sporo wątków, ale nie znalazłem nic, co rozwiązałoby mój problem.

Pozostało 580 znaków

2016-07-10 22:26
Moderator

Rejestracja: 16 lat temu

Ostatnio: 22 minuty temu

0

Jeśli dobrze cie rozumiem to data = data.decode("iso-8859-2").encode("utf-8")


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2016-07-10 23:21

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Niestety nie pomogło. Wrzucę jeszcze cały błąd, dla jasności, choć raczej dobrze zrozumiałeś.

    strona = strona.decode("iso-8859-2").encode("utf-8")
  File "/usr/lib/python2.7/encodings/iso8859_2.py", line 15, in decode
    return codecs.charmap_decode(input,errors,decoding_table)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb3' in position 339: ordinal not in range(128)

Pozostało 580 znaków

2016-07-10 23:41
Moderator

Rejestracja: 16 lat temu

Ostatnio: 22 minuty temu

0

Jak dla mnie z tego wynika że te twoje dane wcale nie są iso8859-2


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2016-07-10 23:42

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Początek strony: "<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">", a do tego, jak pobiorę ręcznie i sprawdzę format to też jest taki.

Pozostało 580 znaków

2016-07-10 23:43
Moderator

Rejestracja: 16 lat temu

Ostatnio: 22 minuty temu

0

Wrzuc jakis przykładowy plik z danymi może? ;]


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2016-07-10 23:47

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Przykładowa pobrana strona po wymuszeniu utf-8.

Pozostało 580 znaków

2016-07-10 23:58
Moderator

Rejestracja: 16 lat temu

Ostatnio: 22 minuty temu

0

Nie no ja chce oryginalny plik, bo to co wrzuciłeś jest już bezużyteczne.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2016-07-11 00:00

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Oryginalny plik, pobrany prosto ze strony. Choć raczej niczym się nie różni od tamtego, poza tymi polskimi znakami.

  • plik.txt (0.06 MB) - ściągnięć: 2659

Pozostało 580 znaków

2016-07-11 00:04
Moderator

Rejestracja: 16 lat temu

Ostatnio: 22 minuty temu

0

No ale to co teraz wstawiłeś to jest UTF-8, więc ja w ogóle nie rozumiem o co chodzi ;]
plik.htm: HTML document, UTF-8 Unicode text, with very long lines


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2016-07-11 00:05

Pozostało 580 znaków

2016-07-11 00:11

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Ajć, mój błąd, późno już i walnąłem głupotę. Tutaj wrzucam jeszcze raz.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0