Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
1 / 1 / 1
Регистрация: 13.11.2017
Сообщений: 28

PhpQuery парсит страницу в другой кодировке

17.06.2018, 12:54. Показов 6001. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, при парсинге столкнулся с проблемой. Некоторые сайты парсятся в какой-то непонятной кодировке.
Делаю так:
PHP
1
2
3
4
5
require_once("phpQuery/phpQuery/phpQuery.php");
$url_cont = file_get_contents('https://sitename.com/?p=503810');
$pq = phpQuery::newDocument($url_cont);
$html = $pq->html();
echo $html;
Возвращает вот такое:


Что можно предпринять да бы парсилось в нормальной кодировке?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2018, 12:54
Ответы с готовыми решениями:

BeautifulSoup не парсит страницу до конца
Писал парсер до какого-то времени он работал нормально, а потом видимо в страницу разработчики внесли изменения и код стал невалидным или...

Справочник по phpQuery или другой простой способ парсинга сайтов
Озадачился я парсингом одного сайта наиболее простым для новичка способом: Строковый поиск - топорный. Регулярки: 1) нужно часто ими...

Как Загрузить страницу в DOS кодировке
Отчет готовится в досовской программе.Потом загружается в окне броузера IE. Как сделать чтоб эта страница сразу грузилась как ...

6
1 / 1 / 1
Регистрация: 13.11.2017
Сообщений: 28
17.06.2018, 15:37  [ТС]
PHP
1
$url_cont = file_get_contents('https://sitename.com/?p=503810');
с кодировкой все в порядке. Как только попадает в обработку библиотеки phpQuery HTML страницы в результат выдает непонятные символы (в общем что то с кодировкой случается).
PHP
1
$pq = phpQuery::newDocument($url_cont);
Добавлено через 43 минуты
Нашёл причину! Проблема в том что библиотека не может считать кодировку, сама на свое усмотрение что то делает с кодировкой.

Проблема в том что на странице указана кодировка в таком формате
HTML5
1
<meta http-equiv="content-type" content="text/html;charset=utf-8">
когда я убрал эту строчку и заменил на эту
HTML5
1
<meta charset="UTF-8">
Все заработало. Вот как то так!
0
18 / 15 / 8
Регистрация: 15.05.2013
Сообщений: 212
16.02.2019, 20:48
А как ты изменил meta тег на странице донора?
0
1 / 1 / 1
Регистрация: 13.11.2017
Сообщений: 28
13.03.2019, 14:19  [ТС]
masta, Я изменил не на странице донора, я сначала вытащил страницу к себе в переменную и уже там изменил meta тег
0
13 / 8 / 7
Регистрация: 12.06.2019
Сообщений: 197
06.01.2021, 18:40
Здравствуйте, нарвался на такую же проблему
Только у меня не вся страница, а только текст в определенном блоке получаю в такой кодировке. Остальные блоки все нормально
???
0
18 / 15 / 8
Регистрация: 15.05.2013
Сообщений: 212
06.01.2021, 18:56
Мне вот такая штука помогла:
PHP
1
2
    $content = file_get_contents('https://sitename.com/?p=503810');
    $doc = phpQuery::newDocument('<meta charset="utf-8">' . $content, 'utf-8');
0
13 / 8 / 7
Регистрация: 12.06.2019
Сообщений: 197
06.01.2021, 20:24
Проблема у меня в том, что у меня пол-страницы по-русски, вторая половина - кракозябры

Добавлено через 1 час 19 минут
Решил бороться
В результате парсинга получаю такую строку на экране:

Персональные рекомендации

Несколько онлайн-декодеров не смогли определить кодировку. Только один написал, что это Windows-1251 и перевел как:

Персональные рекомендации

Выполняю
PHP
1
$description = iconv('WINDOWS-1251', 'UTF-8', $description);
и получаю на экране

Персональн ые рекомендац ии
в БД в таком виде и сохраняется
Как быть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2021, 20:24
Помогаю со студенческими работами здесь

Как получить страницу по GET в нужной кодировке
Есть сайт в win-1251, с которым нужно плотно работать. Отправлять POST и GET запросы, сохранять текущие куки. Помогите: 1). Разобраться с...

Как сохранить html страницу в Windows-1251 кодировке?
скачиваю html страницу. var sait = new WebClient().DownloadString(zapros); произвожу удаление, добавление, смену нужных кусков...

Как сохранить html-страницу в кодировке ANSI (сохраняет только в UTF-8)?
Добрый день! Нужно сохранить страницу в файл в кодировке ANSI. Если открыть страницу в webbrowser, то сохраняется в ANSI: ...

Пересохранить .dbf в другой кодировке
Доброго времени! Имею 2 ДБФ-файла одинакового содержания. Один из них получил из программы ArcGis, при попытке открыть его чем-либо...

Записать текст в другой кодировке
Прочитать текст из файла в одной кодировке, а потом записать в другой файл в другой кодировке. Имя первого файла и две кодировки передаются...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru