在網(wǎng)絡(luò)爬蟲的過程中,有時我們遇到了亂碼,這是非常令人頭痛的。下面我們使用Python對爬取到的亂碼進行處理。
response = requests.get(url) html = response.content soup = BeautifulSoup(html, 'html.parser') print(soup.prettify())
以上是爬取網(wǎng)頁并且用BeautifulSoup解析之后的代碼,其中我們使用了prettify()
函數(shù)可以很好的將源代碼格式化輸出。但是我們?nèi)匀豢赡苡龅絹y碼問題。
其中最常見的亂碼是中文亂碼。解決這個問題,我們需要對讀取到的內(nèi)容進行編碼轉(zhuǎn)換。以下是一個例子:
response = requests.get(url) html = response.content html_doc = html.decode('GBK', 'ignore').encode('UTF-8', 'ignore') soup = BeautifulSoup(html_doc, 'html.parser') print(soup.prettify())
以上是針對GB2312編碼的網(wǎng)頁內(nèi)容轉(zhuǎn)換為UTF-8編碼的代碼。其中"ignore"
參數(shù)可以忽略無法轉(zhuǎn)換的字符。
總之,我們不必因為亂碼而放棄網(wǎng)絡(luò)爬蟲。Python提供了多種編碼轉(zhuǎn)換的方法來解決這個問題。