def getHtml(url,timeout=20):
try:
headers = {
'Accept-Language': 'zh-cn',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'Mozilla/4.0 (compatible MSIE 6.00 Windows NT 5.1 SV1)',
}
r = requests.get(url,headers=headers,timeout=timeout)
html = r.text
return html
except Exception,ex:
return None
soup = BeautifulSoup(getHtml())
print soup.title
以上代码,如何改进,才能在获取任何网页标题的时候,不至于乱码。
注:提取部分网页的标题的时候会直接乱码显示。如何改进,才能通用?
有个 chardet 用来检测编码的,如果安装了,BeautifulSoup 貌似会自动调用这个库来检测编码并 decode 成 unicode。
对了,上面是从网上看的。
总之拿到文件编码就好办了。