我有这个具有编解码器的特定 HTML 页面
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
现在,当我尝试使用 BeautifulSoup 解析这个特定文件时,它总是返回 NULL 对象。我可以使用以下方法转换它:
page = codecs.open('file_name', 'r', 'cp1251')
soup = BeautifulSoup(page.read())
现在它工作正常。但在我的收藏中,我的页面包含UTF-8和windows-1251字符集类型。所以,我想知道确定特定 HTML 页面的字符集的过程是什么,如果它是 windows-1251 格式,并相应地转换它?
我找到了这个:
soup.originalEncoding
但为此,我需要将其加载到“汤”中。但只有它返回“无类型对象”。任何帮助将不胜感激。
我正在使用 Python 2.7
编辑:
这是我实际上想说的一个例子:
这是我的代码:
from bs4 import BeautifulSoup
import urllib2
page=urllib2.urlopen(Page_link)
soup = BeautifulSoup(page.read())
print soup.html.head.title
页面有
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
正确显示页面的标题。
现在如果一个页面有
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
那么输出是
AttributeError:“NoneType”对象没有属性“head”
现在我可以使用上面提到的编解码器库来解决这个问题。我试图找出的是如何确定编码以便能够应用它。
这些是试图抓取和收集某些信息的两个站点: