0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 14
|
||||||
1 | ||||||
Считать содержимое сайта в правильной кодировке05.01.2013, 15:14. Показов 2531. Ответов 10
Метки нет (Все метки)
Здравствуйте, пишу парсер для сайта, точнее краулер)).
Мне нужно считать содержимое сайта в правильной кодировке. Считываю через webrequest/response и streamreader Кодировка указывается в строчке StreamReader streamreader = new StreamReader(stream, ASCIIEncoding.UTF8); Пока я считываю всегда в UTF-8, а потом через регулярные выражения проверяю вхождения русских символов. Затем, если символов не нашлось выполняю ещё один запрос, но в streamreader уже пишу default. Но это, конечно, какой-то прямо неполноценный вариант)) 2 запроса к одному ресурсу плохо делать)) Думал, что может получится так
И ещё, буду признателен, если посоветуете, как всю процедуру упростить. Обойтись без регулярных выражений, а то вдруг придётся парсить какой-нибудь корейский сайт, тогда мой метод уже не прокатит. Спасибо)))
0
|
05.01.2013, 15:14 | |
Ответы с готовыми решениями:
10
Чтение файла в правильной кодировке Запись в файл в правильной кодировке Отправка письма в правильной кодировке Отправка почты в правильной кодировке |
56 / 56 / 14
Регистрация: 06.04.2012
Сообщений: 185
|
||||||
05.01.2013, 17:59 | 2 | |||||
Я точно не уверен, но по-моему Default это и есть UTF8, а для русского вам нужно использовать Cp-1251
0
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 14
|
|||||||||||
05.01.2013, 18:31 [ТС] | 3 | ||||||||||
Ну, насколько я понял, default - кодировка по-умолчанию для данного компьютера. В моём случае это windows-1251, т. к. строчки
0
|
56 / 56 / 14
Регистрация: 06.04.2012
Сообщений: 185
|
||||||
05.01.2013, 18:38 | 4 | |||||
теоретически сайт должен указывать какую кодировку он использует
1
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 14
|
|
05.01.2013, 19:31 [ТС] | 5 |
я где-то читал, что не на всех сайтах чарсет прописан и все-равно в этом случае придется делать 2 запроса, первый раз, чтобы получить нужные метаданные и вытащить оттуда кодировку, а второй раз, чтобы собственно получить все содержимое страницы. HtmlAgilityPack посмотрю, спасибо.
Но мне все-равно кажется, что можно считывать все сайты, например в utf-8, а потом, если что, преобразовывать через массив байт в нужную кодировку, но что-то вот не получается пока))
0
|
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
|
|
05.01.2013, 19:34 | 6 |
Проверьте заголовки HTTP-запроса - там должна быть указана кодировка.
0
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 14
|
|
05.01.2013, 20:14 [ТС] | 7 |
Ну вот с одного сайта, здесь указано
0
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
05.01.2013, 20:28 | 8 |
при запросе на сайт можно указать в какой кодировке хочется получить ответ, правда сайт не обязан выполнять это условие
если известно на какие сайты запросы то проще всего указать конкретную кодировку для каждого
0
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 14
|
|
05.01.2013, 20:34 [ТС] | 9 |
m0nax, а есть пример?, в webrequest я такого не нашёл. В том и проблема, что неизвестно куда занесет мою программу)) она переходит по ссылкам почти рандомно)
0
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
05.01.2013, 23:45 | 10 |
Accept-Charset
Accept-Encoding Accept-Language http://ru.wikipedia.org/wiki/С... овков_HTTP а примеры смотри у запросов браузеров, они частенько отсылают это они там довольно замороченые бывают, с указанием степени "желаемости", типа очень хочу utf8, если нету то давай cp1251, если и его нет давай ascii
0
|
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
|
|
06.01.2013, 01:53 | 11 |
Ну что сказать.. Простенькие компиляторы пишут полностью на if-ax,по-этому смотрите сами. Это не самый плохой вариант.
0
|
06.01.2013, 01:53 | |
06.01.2013, 01:53 | |
Помогаю со студенческими работами здесь
11
Запись в файл в правильной кодировке Чтение файла в правильной кодировке Записать информацию в файл в правильной кодировке Как вывести текст в правильной кодировке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|