python用beautifulsoup爬取網頁時出現亂碼的解決方法


一、原因:

  在用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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM