"""
__author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 2007-2017 PhiloSoft Design"
+__copyright__ = "Copyright (C) 2007-2023 PhiloSoft Design"
__license__ = "GNU GPL"
__all__ = ['parse_html']
from BeautifulSoup import BeautifulSoup, CData
from .bkmk_ph_util import HTMLParser
-DEFAULT_CHARSET = "cp1251" # Stupid default for Russian Cyrillic
+DEFAULT_CHARSET = "cp1251" # Stupid default for Russian Cyrillic
# http://groups.google.com/group/beautifulsoup/browse_thread/thread/69093cb0d3a3cf63
class BadDeclParser(BeautifulSoup):
except SGMLParseError:
# Could not parse the DOCTYPE declaration
# Try to just skip the actual declaration
- match = re.search(r'<!DOCTYPE([^>]*?)>', self.rawdata[i:], re.MULTILINE|re.IGNORECASE)
+ match = re.search(
+ r'<!DOCTYPE([^>]*?)>', self.rawdata[i:],
+ re.MULTILINE|re.IGNORECASE) # noqa: E227
+ # missing whitespace around bitwise or shift operator
if match:
toHandle = self.rawdata[i:match.end()]
else:
return None
_charset = root.originalEncoding
- if _charset in ("ISO-8859-2", "windows-1252", "MacCyrillic"): # Replace default
+ if _charset in ("ISO-8859-2", "windows-1252", "MacCyrillic"): # Replace default
_charset = DEFAULT_CHARSET
root = _parse_html(html_text, _charset)
if root is None:
head = html.head
if head is None:
- head = html # Some sites put TITLE in HTML without HEAD
+ head = html # Some sites put TITLE in HTML without HEAD
title = head.title
if (title is None) and (html is not head):
__charset = meta_content.lower().split('charset=')[1].split(';')[0]
else:
__charset = False
- except IndexError: # No charset in the META Content-Type
+ except IndexError: # No charset in the META Content-Type
meta_charset = False
else:
meta_charset = _charset == __charset