iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 15
0
自我挑戰組

30天Python學習分享路程系列 第 15

Day 15-BeautifulSoup(下)

  • 分享至 

  • xImage
  •  

先補這一篇的債

如果當你發現BeautfisulSoup解析出來的數據為亂碼時,先檢查requests的內容是否也是亂碼
具體作法我們來測試一個網址
從中央氣象局取得一周內的預報資料:
(http://www.cwb.gov.tw/V7/forecast/week/week.htm )

from bs4 import BeautifulSoup
pageRequest = requests.get('http://www.cwb.gov.tw/V7/forecast/week/week.htm')

print(pageRequest.text)

當我們使用從requests返回來的方法.text時我們會發現他的中文變成了亂碼

你可以先看一下response的content

print(pageRequest.content)

如果正常的話那在requests的時候最好增加一個我們要用什麼樣的編碼來處理這個response
避免出現這樣的狀況

  print(pageRequest.encoding)

當我們查看requests回傳的編碼的時候,發現他是ISO-8859-1並非是UTF-8
我們可以用以下方是改成utf-8

soup = BeautifulSoup(pageRequest.content, 'html.parser')
soup.encoding = 'utf-8'
weather = soup.find(attrs={"class":"BoxTableInside"}).text
print(weather)

soup.encoding可以定義要用何種方式做編碼解析

這樣一來我們的文字就是正常的中文了

如下圖:

https://ithelp.ithome.com.tw/upload/images/20180106/20107812SvgDHQQeIu.png


上一篇
Day14-使用BeautifulSoup解析原始碼
下一篇
Python-檔案處理篇(上)
系列文
30天Python學習分享路程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言