Проблема с кодировкой

Challenger

Client
Регистрация
06.05.2016
Сообщения
22
Благодарностей
3
Баллы
3
Такой вопрос:
Использую сервис https://mercury.postlight.com/web-parser/, через CURL получаю данные с сайтов.

Данные с сайтов где charset=utf-8 "приезжают" в плохой кодировке, например:
"title":"Создание ассоциации – с чего начать?"
"content":"<div id=\"cb\"> <p>&#x421;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x430;&#x441;&#x441;&#x43E;&#x446;&#x438;&#x430;&#x446;&#x438;&#x438; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x43C;&#x43E;&#x43C;&#x435;&#x43D;&#x442;,"
Это у меня получилось перекинуть в нормальную кодировку и получить текст на русском языке.

А вот такой мусор получается, если сайт в кодировке windows-1251
"title":"пїЅ 5. пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ (пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ пїЅпїЅпїЅпїЅпїЅ)"
content":"<body id=\"pravo-lektsii-grajdanskoe\" class=\"site-material_ext_publish section-material-design noninitial-chapter color-cyan qp-ui qp-ui-mask\"> <header> </header> <p id=\"grid-cont\"> <section class=\"grid_outer chapter\"> <div class=\"article-content\"> <section class=\"cssfinode\"> <p>&#xFFFD; &#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD; &#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;&#xFFFD;"

Вопрос - что поправить, чтобы:
1) или изначально все получать русский текст независимо от кодировки сайта
2) перекодировать получаемый контент для сайтов с кодировкой windows-1251 в читаемый вид, например отсюда:
http://www.ualis.ru/registration/regassouz.html

Исходник проекта приложил, URL вставляется в переменную "url"
 

Вложения

  • 797,7 КБ Просмотры: 236

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 544
Баллы
113
Как этот вопрос связан с ZennoPoster?
Делайте запросы через стандартные GET\POST кубики и не будет таких проблем.
 

Challenger

Client
Регистрация
06.05.2016
Сообщения
22
Благодарностей
3
Баллы
3
Согласен, с Zennoposter вопрос связан только тем, что curl запускается через zennoposter.

Вопрос про GET-кубик тогда. Каким образом можно в GET-кубик или в C# код поместить следующие данные?

GET https://mercury.postlight.com/parser?url=https://trackchanges.postlight.com/building-awesome-cms-f034344d8ed
Content-Type: application/json
x-api-key: <your-api-key>

Это единственный пример кода, который предоставляет сервис. В справке и по форуму пример GET запроса с параметрами не нашел (или плохо искал), поэтому делал через cURL.
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 544
Баллы
113
Согласен, с Zennoposter вопрос связан только тем, что curl запускается через zennoposter.

Вопрос про GET-кубик тогда. Каким образом можно в GET-кубик или в C# код поместить следующие данные?

GET https://mercury.postlight.com/parser?url=https://trackchanges.postlight.com/building-awesome-cms-f034344d8ed
Content-Type: application/json
x-api-key: <your-api-key>

Это единственный пример кода, который предоставляет сервис. В справке и по форуму пример GET запроса с параметрами не нашел (или плохо искал), поэтому делал через cURL.
Начиная СО ВТОРОЙ строки в разделе "User Agent" на вкладке "Дополнительно".
В первой строке всегда указывается сам Useragent.
 
  • Спасибо
Реакции: Challenger

Challenger

Client
Регистрация
06.05.2016
Сообщения
22
Благодарностей
3
Баллы
3
Сервис все равно выдает белиберду, но уже через GET-запрос а не через cURL))
Пробовал и с кодировкой UTF-8 и с Windows-1251. Походу, он или вообще не в состоянии отдать корректный запрос, или надо экспериментировать. В любом случае, спасибо за быстрый ответ.
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 544
Баллы
113
Сервис все равно выдает белиберду, но уже через GET-запрос а не через cURL))
Вероятно проблема в сервисе, нет? :-)
Напишите в тех. поддержку их сервиса, скажите, что кириллица отображается некорректно.
 
  • Спасибо
Реакции: Challenger

Challenger

Client
Регистрация
06.05.2016
Сообщения
22
Благодарностей
3
Баллы
3
Вероятно проблема в сервисе, нет? :-)
Напишите в тех. поддержку их сервиса, скажите, что кириллица отображается некорректно.
Написал, но скорее всего ничего не изменится. В принципе, нашел способ получать нужные данные и с тем что есть. Тему можно закрывать)
 

smartwisard

Client
Регистрация
17.01.2017
Сообщения
824
Благодарностей
82
Баллы
28
Get-запрос получил объявление, а контактных данных там нет.
Из сообщения выше вижу, что нужно прописать UserAgent. Что ещё нужно прописать, чтобы и контактные данные (например из http://bazarpnz.ru/ann/28084930/?sid=12635a2a510065ffec7c590ed5696115 )получить?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 470
Благодарностей
8 691
Баллы
113
Get-запрос получил объявление, а контактных данных там нет.
Из сообщения выше вижу, что нужно прописать UserAgent. Что ещё нужно прописать, чтобы и контактные данные (например из http://bazarpnz.ru/ann/28084930/?sid=12635a2a510065ffec7c590ed5696115 )получить?
через GET-запрос на этом сайте не получится спарсить контакты, только через браузер из DOM их получать..
 

smartwisard

Client
Регистрация
17.01.2017
Сообщения
824
Благодарностей
82
Баллы
28
через GET-запрос на этом сайте не получится спарсить контакты, только через браузер из DOM их получать..
Тогда мой шаблон совершенен ((
Пойду антикапчу Лорда Афлекса прикручивать ((
 

Live9up

Client
Регистрация
19.06.2023
Сообщения
1
Благодарностей
0
Баллы
1
Столкнулся с похожей проблемой, решил ее кубиком на C#

C#:
// Если нужно брать текст из переменной
// string encodedText = project.Variables["Название_Переменной"].Value;

string encodedText = "Создание ассоциации – с чего начать?";

// Декодирование текста из UTF-8 в строку
string decodedText = Encoding.UTF8.GetString(Encoding.Default.GetBytes(encodedText));

//вывод результата в ЛОГ
return(decodedText);

//Если нужно выводить результат в переменную
//project.Variables["Название_Переменной"].Value = decodedText;
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)