Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/75: Рейтинг темы: голосов - 75, средняя оценка - 4.89
6 / 6 / 1
Регистрация: 22.10.2012
Сообщений: 36

Grab: кодировка текста

25.04.2014, 07:48. Показов 16652. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Накидал парсер новостей с lenta.ru и gazeta.ru.
Использовал grab 0.4.13.
python 3.3.5 под w8.1
Проблема такая:
Текст вытаскивается из grab.response.body. С ленты вытаскивается нормально, с газеты.ру вытаскиваются только знаки препинания, текст не тащиться. Насколько знаю, grab.response.body возвращает текст в utf-8, на газеты charset=cp1251.
Пробовал читать body_as_bytes() (побайтово), тогда с ленты грабятся иероглифы, а с газеты нормальный, нужный текст..
Кто сталкивался?Что делать?
.encode(),.decode() не помогают..

При body_as_bytes():
Кандидат от оппозиции Абдулла Абдулла (Abdullah Abdullah) набрал 41,9 процента голосов на президентских выборах в Афганистане. Об этом в воскресенье, 13 апреля, сообщает Reuters. На втором месте идет ориентирующийся на Запад экс-министр финансов Ашраф Гани (Ashraf Ghani) — его поддержали 37,6 процента электората
Пока в Независимой избирательной комиссии Афганистана обработали только 10 процентов бюллетеней, поданных в 26 из 34 провинций страны в ходе голосования, состоявшегося 5 апреля, поэтому обнародованные результаты носят сугубо предварительный характер. По словам руководителя национального избиркома Юсуфа Нуристани (Yousuf Nuristani), подсчитано лишь порядка 500 тысяч голосов при том, что в выборах принимали участие порядка семи миллионов жителей страны, пишет The Washington Post.
Согласно национальному законодательству, победителем в борьбе за высший государственный пост станет кандидат, заручившийся поддержкой не менее 50 процентов избирателей. Тем не менее Абдулла Абдулла, бывший министр иностранных дел Афганистана, уже заявил, что хотя и рассчитывает после официальной победы на выборах сформировать правительство национального единства, места для его ближайшего оппонента в кабинете министров нет. «Доктор Гани сможет выступать в качестве представителя лояльной оппозиции. Ð*то тоже принесет пользу стране», — заявил Абдулла в интервью Associated Press.
Ð*одившийся в 1960 году Абдулла Абдулла возглавляет оппозиционную «Национальную коалицию Афганистана». Офтальмолог по образованию, он был одним из ближайших сподвижников полевого командира моджахедов Ахмад Шаха Масуда в годы советской военной кампании в Афганистане. Ð’ администрации Хамида Карзай Абдулла Абдулла в 2001-2005 годах был главой МÐ?Д. На президентских выборах в 2009 году занял второе место, получив 30,6 процента голосов.



lenta.ru/news/2014/04/13/afghanistan


В Архангельске в результате лобового столкновения автобуса и легкового автомобиля пострадали 9 человек, сообщает пресс-служба регионального УМВД.«Около 12 часов в Архангельске в районе д. 34 по ул. Доковской произошло столкновение автобуса ПАЗ маршрута №3, перевозившего людей, и легкового автомобиля «Рено-Логан», — говорится в сообщении.По предварительной информации, водитель «Рено» выехал на полосу встречного движения, где столкнулся с автобусом. В результате ДТП пострадали девять человек, в том числе водитель легковушки и восемь пассажиров автобуса. Им всем оказывается медицинская помощь.Сотрудники полиции выясняют все обстоятельства произошедшего.



https://www.gazeta.ru/auto/new... 95469.shtm
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2014, 07:48
Ответы с готовыми решениями:

Кодировка текста перестановкой столбцов в массиве, составленном из слов текста
Нужно заполнить двумерный массив с поля (Edit) после некоторых операций вывести массив в поле. Вопрос как заполнить массив с...

Кодировка текста
После создания программой текстово файла, при открытие его AkelPad'ом он выглядет нормально, но при открытие блокнотом весь файл выглядет...

Кодировка текста
За место названий цвета отображается вопросиками (??????), подскажите где и какую кодировку правильно прописать? <?php /** *...

5
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
25.04.2014, 10:14
Leshkin, попробуй считывать с помощью body_as_bytes() и потом к полученым данным примени метод .decode('cp1251'). Ну кодировку естественно применяй к каждому сайту свою.
0
6 / 6 / 1
Регистрация: 22.10.2012
Сообщений: 36
25.04.2014, 10:27  [ТС]
Цитата Сообщение от tsar925 Посмотреть сообщение
body_as_bytes() и потом к полученым данным примени метод .decode('cp1251').
не вариант так делать, так как парсер для разных сайтов будет использоваться.
при граббинге с ленты.ру вылетает ошибка:UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 124: character maps to <undefined>
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
25.04.2014, 10:33
Leshkin, газета.ру таким образом нормально парсится?
0
6 / 6 / 1
Регистрация: 22.10.2012
Сообщений: 36
25.04.2014, 10:40  [ТС]
tsar925, газета.ру и без decode() прсто body_as_bytes() хорошо парсится.
причем с mail.ru тоже нормально парсится.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
25.04.2014, 10:46
Лучший ответ Сообщение было отмечено Leshkin как решение

Решение

Я ни когда grab не пользовался, могу показать как тоже самое сделать с помощью другой библиотеки.
Python
1
2
3
4
import requests
 
data = requests.get('http://lenta.ru/news/2014/04/13/afghanistan/')
print(data.text)
Python
1
2
3
4
import requests
 
data = requests.get('http://www.gazeta.ru/')
print(data.text)
С помощью этой библиотеки без проблем получаются страницы обоих сайтов. Агетировать бросать grab не буду, решайте сами. Как решить проблему с grab не могу, потому как не работал с ним.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2014, 10:46
Помогаю со студенческими работами здесь

Кодировка текста
Доброго времени суток, возникла проблема, записывая данные в БД, ввожу их на русском (Например: Математика), но когда мне надо сделать...

Кодировка текста
Доброго времени суток! подскажите, пожалуйста, у меня есть файл с расширением txt но там проблемы с кодировкой текста. могу ли я...

Кодировка текста
Проблема заключается в том, что текст на русском языке кодируется некорректно. Если заносить данные из формы, то в БД они появляются...

Кодировка текста
Всем привет, вот сделал дамп БД но некоторые таблицы отобразились не правильно, я так понимаю не в той кодировке вот пример текста:...

Кодировка текста
Доброго времени суток! У меня следующая ситуация: создал папку в убунте, разшарил. Захожу на нее с винды, создаю и заполняю текстом файл....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru