# BeautifulSoup ## 功能 >抓取HTNL標頭檔裡的資料 >搜尋HTML標頭檔 >[color=#227700] ## 安裝及準備 >我們使用Anaconda的JupyterNotebook,不再需要在電腦安裝任何東西 >在程式開頭鍵入 `from bs4 import BeautifulSoup`(大小寫需與範例一致) >先宣告一個變數盛裝HTML檔 >用BeautifulSoup的功能來解構BeutifulSoup(變數,'html.parser') >[color=#227700] ``` python= from bs4 import BeautifulSoup import requests html_doc = "https://tw.news.appledaily.com/forum/realtime" #在此引入"蘋果日報"的網站 #有需要業配請找我 get=requests.get(html_doc) soup=BeautifulSoup(get.text,'html.parser') ``` ## 常用標籤 >`find_all` 找出所有特定的 HTML 標籤節點 >`get` 取出 HTML 節點的各種屬性 >[color=#227700] ## 範例 ### 範例一 ```python= from bs4 import BeautifulSoup import requests html_doc="https://tw.news.appledaily.com/forum/realtime" get=requests.get(html_doc) soup=BeautifulSoup(get.text,'html.parser') title = soup.find_all('title')[0] print(title) #輸出title屬性 ``` 上述程式碼會輸出`<title>即時|論壇|蘋果新聞網|蘋果日報</title>` 是整個`title`標籤,如果只想要文字屬性,可以改成 `title = soup.find_all('title')[0].text` 就會只輸出`即時|論壇|蘋果新聞網|蘋果日報` **注意 在這裡find_all是取出所有標籤,所以會是一個list** ### 範例二 ```html= <li class="rtddt"> <time>21:40<\time> <h1> <font color="#383c40">司改會林瑋婷、林俊宏:新興毒品管制需要更...<\font> <\h1> </li> ``` 想要爬出這則新聞的標題,可以一層一層的搜尋下去 ```python= from bs4 import BeautifulSoup import requests html_doc="https://tw.news.appledaily.com/forum/realtime" get=requests.get(html_doc) soup=BeautifulSoup(get.text,'html.parser') news = soup.find_all(class_="rtddt")[0].find_all('h1')[0].text print(news) ```