PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Парсинг страницы с не простой кодировкой
Поиск в теме | Версия для печати
pernik
Отправлено: 12 Февраля, 2019 - 18:10:14
Новичок
Покинул форум
Сообщений всего: 15
Дата рег-ции: Июль 2014
Помог: 0 раз(а)
Всем гуру PHP привет, пытаюсь спарсить эту
http://david[dot]kh[dot]ua/ страницу, но на выходе получаю битую кодировку, может кто что подскажет.
Vladimir Kheifets
Отправлено: 13 Февраля, 2019 - 20:40:14
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017
Откуда: Германия, Бавария
Помог: 37 раз(а)
pernik пишет: Да там явно не UTF-8, я предпологаю что там кодируют html при обращении с другого сервера. Не знаю можно ли это как то обойти ?
там явно не UTF-8? см. что там
CODE (
html ):
скопировать код в буфер обмена
<!DOCTYPE html>
<html lang = "ru-RU" >
<head >
<meta charset = "UTF-8" >
<title > Давид | Давид- наружная реклама Харьков</ title >
<meta name = "viewport" content = "width=device-width" / >
<link rel = "shortcut icon" href = "/favicon.png" type = "image/x-icon" >
<link rel = "icon" href = "/favicon.png" type = "image/x-icon" >
..........................................................
..........................................................
(Отредактировано автором: 13 Февраля, 2019 - 22:48:35)
pernik
Отправлено: 14 Февраля, 2019 - 10:34:57
Новичок
Покинул форум
Сообщений всего: 15
Дата рег-ции: Июль 2014
Помог: 0 раз(а)
Vladimir Kheifets пишет: pernik пишет: Да там явно не UTF-8, я предпологаю что там кодируют html при обращении с другого сервера. Не знаю можно ли это как то обойти ?
там явно не UTF-8? см. что там
CODE (
html ):
скопировать код в буфер обмена
<!DOCTYPE html>
<html lang = "ru-RU" >
<head >
<meta charset = "UTF-8" >
<title > Давид | Давид- наружная реклама Харьков</ title >
<meta name = "viewport" content = "width=device-width" / >
<link rel = "shortcut icon" href = "/favicon.png" type = "image/x-icon" >
<link rel = "icon" href = "/favicon.png" type = "image/x-icon" >
..........................................................
..........................................................
А у меня это
echo file_get_contents("http://david.kh.ua");
‹н]{“ЫЦuяЯџ‹Lґ»5Бчk\U–е4ЌвШ’Э4±<; ’Ш% Й]Лљ±-»Iк4qУ¤Н¤MТДЙ4™>F¶ҐD¶e{¦џЂыЌъ;з ^д‚+j-w2#-I<оЅзЮуѕзњ»»цф7.їрз®H]§ЯЫЫҐїROt
Vladimir Kheifets
Отправлено: 14 Февраля, 2019 - 12:26:00
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017
Откуда: Германия, Бавария
Помог: 37 раз(а)
pernik пишет: Vladimir Kheifets пишет: pernik пишет: Да там явно не UTF-8, я предпологаю что там кодируют html при обращении с другого сервера. Не знаю можно ли это как то обойти ?
там явно не UTF-8? см. что там
CODE (
html ):
скопировать код в буфер обмена
<!DOCTYPE html>
<html lang = "ru-RU" >
<head >
<meta charset = "UTF-8" >
<title > Давид | Давид- наружная реклама Харьков</ title >
<meta name = "viewport" content = "width=device-width" / >
<link rel = "shortcut icon" href = "/favicon.png" type = "image/x-icon" >
<link rel = "icon" href = "/favicon.png" type = "image/x-icon" >
..........................................................
..........................................................
А у меня это
echo file_get_contents("http://david.kh.ua");
‹н]{“ЫЦuяЯџ‹Lґ»5Бчk\U–е4ЌвШ’Э4±<; ’Ш% Й]Лљ±-»Iк4qУ¤Н¤MТДЙ4™>F¶ҐD¶e{¦џЂыЌъ;з ^д‚+j-w2#-I<оЅзЮуѕзњ»»цф7.їрз®H]§ЯЫЫҐїROt
Добрый день!
Попробуйте сделать так:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?
header ( "Content-Type: text/html; charset=utf-8" ) ; function file_get_contents_curl( $url )
{
return $data ;
}
$html = file_get_contents_curl( "http://david.kh.ua" ) ;
$doc = new DOMDocument( ) ;
@ $doc -> loadHTML ( $html ) ;
?>
Это результат( в нём, например, NULL ["textContent"]=> string(12120) "Давид | Давид- наружная реклама Харьков ):
Спойлер (Отобразить ) Цитата: object(DOMDocument)#1 (35) { ["doctype"]=> string(22) "(object value omitted)" ["implementation"]=> string(22) "(object value omitted)" ["documentElement"]=> string(22) "(object value omitted)" ["actualEncoding"]=> string(5) "UTF-8" ["encoding"]=> string(5) "UTF-8" ["xmlEncoding"]=> string(5) "UTF-8" ["standalone"]=> bool(true) ["xmlStandalone"]=> bool(true) ["version"]=> NULL ["xmlVersion"]=> NULL ["strictErrorChecking"]=> bool(true) ["documentURI"]=> NULL ["config"]=> NULL ["formatOutput"]=> bool(false) ["validateOnParse"]=> bool(false) ["resolveExternals"]=> bool(false) ["preserveWhiteSpace"]=> bool(true) ["recover"]=> bool(false) ["substituteEntities"]=> bool(false) ["nodeName"]=> string(9) "#document" ["nodeValue"]=> NULL ["nodeType"]=> int(13) ["parentNode"]=> NULL ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> string(22) "(object value omitted)" ["lastChild"]=> string(22) "(object value omitted)" ["previousSibling"]=> NULL ["nextSibling"]=> NULL ["attributes"]=> NULL ["ownerDocument"]=> NULL ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> NULL ["baseURI"]=> NULL ["textContent"]=> string(12120) "Давид | Давид- наружная реклама Харьковwindow._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/david.kh.ua\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.8.8"}};!function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a){case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,56826,8203,55356,56819),0,0),c=j.toDataURL(),b!==c&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55358,56794,8205,9794,65039),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55358,56794,8203,9794,65039),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;hdiv .opportunitie-description{margin:0;padding:0}.opportunities-row>div .opportunitie-title{margin:0;padding:0;min-height:75px;display:-webkit-flex;display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.opportunities-row>div{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.opportunities-row{display:-webkit-flex;display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}" }
cм. https://stackoverflow[dot]com/questi[dot][dot][dot]rl-utf-8-charset
Удачи!(Отредактировано автором: 14 Февраля, 2019 - 12:37:39)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB