我注意到,当我从网页上用漂亮的汤得到HTML时,它会发生变化。这是我用来获取它的代码:
from bs4 import BeautifulSoup
import requests
url ="http://www.basketnews.lt/lygos/59-nacionaline-krepsinio-asociacija/2013/naujienos.html"
r = requests.get(url)
soup = BeautifulSoup(r.text)
print soup
以下是原始HTML的一部分:
^{pr2}$以下是HTML中与Beautiful Soup相同的部分:
<a href="/news-73149-valanciunui-ir-raptors-sezonas-baigtas-foto-statistika.html">ValanÄiÅ«nui ir âRaptorsâ sezonas baigtas <span class="title_description">(foto, statistika)</span></a>
您可以看到我正在解析的HTML中的文本是如何混乱的。问题出在哪里?在
您使用的是
r.text
,这意味着requests
将使用默认编码;但是它会出错:ISO-8859-1(拉丁语1)是HTTP 1.1 default encoding for ^{} responses 。在
当使用检测算法时,会发现UTF-8。在
您不应该使用
^{pr2}$r.text
,而应该使用r.content
,让BeautifulGroup来执行检测:现在它可以正常工作:
^{3}$beauthulsoup也使用自动检测,但在本例中,它将在页面中找到编码正确的
<meta>
报头:相关问题 更多 >
编程相关推荐