一、原因:
在用beutifulsoup爬取網頁的信息時,我們會遇到信息變成亂碼的情況,之所以出現這種情況,是因為requests和beautifulsoup模塊都會自行評測原網頁的編碼格式。
二、解決辦法:
(1)查看網頁編碼格式:
既然要將soup中編碼格式改為正確的,那我們首先就要知道你要爬取的網頁編碼格式是什么。
首先是F12—>到控制台Console—>輸入document.charset。
此處的utf-8就是該網頁的編碼格式。
(2)修改爬取時的編碼格式:(這里是改為utf-8)
import requests
from bs4 import BeautifulSoup
html = requests.get("http://www.baidu.com/")
html.encoding='utf-8'//將編碼格式改為utf-8
soup = BeautifulSoup(html.text,'lxml')
print(soup.XX)
(3)關於中文亂碼:
BeautifulSoup在解析utf-8編碼的網頁時,如果不指定fromEncoding或者將fromEncoding指定為utf-8會出現中文亂碼的現象。
解決此問題的方法是將Beautifulsoup構造函數中的fromEncoding參數的值指定為:gb18030
import urllib2 from BeautifulSoup import BeautifulSoup page = urllib2.urlopen('http://outofmemory.cn/'); soup = BeautifulSoup(page,fromEncoding="gb18030") print soup.originalEncoding print soup.prettify()