1. Python / Говнокод #24709

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de" dir="ltr">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    		<meta name="keywords" content="Kabel Deutschland, digitale Belegung, Frequenzen, Kanäle, Sender" />

    Вся страница тут https://helpdesk.kdgforum.de/sendb/belegung.html
    Ебучий lxml при попытке парсить документ в неправильной кодировке (Невалидный utf8, в meta name="keywords" содержимое в однобайтовой кодировке. Как такое получили - другой вопрос) тихо сваливается в какую-то однобайтовую кодировку. Браузер всё показывает нормально. Несмотря на xhtml, который вроде должен заставлять строго парсить.

    Запостил: syoma, 01 Сентября 2018

    Комментарии (11) RSS

    • Какой багор )))
      Ответить
      • Вставил тебе свой волосатый багор по самые булки, проверь...
        Ответить
    • Ап
      Ответить
    • Где здесь "Python", syoma?
      Ответить
    • Браузер всегда и все парсит нормально, ему похуй, он знает что верстальщики криворуки от природы

      А lxml знает только про xml.
      Ответить
      • В популярных браузерах уже лет десять (кроме IE -- в нём меньше) основным форматом является HTML5 поверх HTML. Даже если на вход прилетает XHTML (пофигу с каким доктайпом), браузер всё равно пытается распарсить его движком HTML5/HTML. Чтобы заставить его парсить страницу XML-движком, нужно отправить Content-Type: application/xhtml+xml, что сервера обычно не делают, потому что старые версии IE отказывались принимать страницы с таким MIME-типом (надо было вручную добавлять в реестр Windows соответствующую запись, чтобы IE страницу хоть как-то принял). И это несмотря на то, что движок XML+XSLT в IE был с древнейших времён.
        Ответить
        • В общем, из-за браузерной войны сайтостроители плюнули на строгость и отправляют невалидный xhtml с заголовком Content-Type: text/html, так что браузеры разбирают такие страницы нестрого, т.е. как html.
          Ответить
      • >А lxml знает только про xml.
        Датычо? А lxml.html это что?
        Ответить
        • а если это html тогда какие претензии?
          Ответить
          • Претензии к чему? В посте всё расписано вроде как.
            Ответить

    Добавить комментарий