Найти - Пользователи
Полная версия: BeautifulSoup и кодировка
Начало » Web » BeautifulSoup и кодировка
1 2
Cover Story
Всем доброго!
Пытаюсь испробовать супа и натыкаюсь на грабли. А именно, есть код:
# -*- utf-8 -*-

import urllib2, webbrowser
from BeautifulSoup import BeautifulSoup

select_list_page = 'http://www.notary.ru/notary/bd.php'

page = urllib2.urlopen(select_list_page)

soup = BeautifulSoup(page)
soup.originalEncoding

select = soup.find('ul')
option_tags = select.findAll('a')

option_tags = option_tags[0:]
for option in option_tags:
s1 = str(option)
print option
Который мне выдает не правильную кодировку текст в неправильной кодировке. Где ошибка? Причем перекодироваться он нехочет ни с помощью decode, ни с encode, ни с unicode. По крайней мере у меня. Блин целый день потратил. Мозг сломал.
Александр Кошелев
Cover Story
Который мне выдает не правильную кодировку текст в неправильной кодировке.
Что это такое?
Ferroman
Куда “выдаёт”?
o7412369815963
Cover Story
возможно страница в кодировке cp1251, при этом нужно перевести её в родную кодировку:
page = urllib2.urlopen(select_list_page).decode('cp1251')
Cover Story
Спасибо lorien!
Все заработало. chardet я скачал, но что-то пока не могу установить, позже разберусь. Мне пока этого хватает
rabbi
Возникла похожая проблема:
    page = urllib2.urlopen("http://irr.ru/jobs-education/education/languages/").read()
soup = BeautifulSoup(page)
print soup #выдает русские символы в кривом виде
пробую делать:

page = urllib2.urlopen("http://irr.ru/jobs-education/education/languages/").read().decode('utf-8')
выходит исключение “'utf8' codec can't decode bytes in position 94520-94521: invalid data”

chardet установил - не помогает, подскажите что не так?
rabbi
Спасибо, работает)
sonniy
и у меня тут танци с бубном
# -*- coding: utf-8 -*-
import urllib2
import codecs
import csv
import sys
from BeautifulSoup import BeautifulSoup



site_url = 'http://hotline.ua'
search_word = u'g900'
query_string = 'http://hotline.ua/sr/?q=%s&x=0&y=0'%search_word
page = urllib2.urlopen(query_string)
soup = BeautifulSoup(page)

i = soup.__str__()
print i
родная кодировка страници cp1251
как только я не мучал encode / decode ниче не выходит
Ferroman
А что не так? Мой хрустальный шар молчит.

PS. Один вопрос - одна тема.
truporez
Я решал вопросы кодировки чуть сложнее, но надежнее.
1. пытаемся получить кодировку из тега meta
META_ENCODING = re.compile( "<meta[^>]*charset=([^;\"\']*)[^>]*?>", re.I )
2. есть не удалось, определяем через chardet
3. конвертим в unicode строку используя полученную кодировку
4. подсовываем BeautifulSoup'у
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB