close

也是為了紀錄與日後方便使用, 換電腦時不用一直查找資料

先安裝BeautifulSoup4(很常覺得為啥這個模組名字要這麼長.....)

還有requests

pip install bs4

pip install requests

我已經安裝過了, 就不再貼上截圖了~

假設我想要爬取我的部落格的標題

未命名.png

我們在這段文字上按下滑鼠右鍵, 開啟檢查

未命名.png

可以看到這段文字前後是由h2 tag包夾的

所以我們先導入模組

import requests
from bs4 import BeautifulSoup as BS

接著用requests去模擬瀏覽器向伺服器要求回應

res = requests.get('http://tn00343140a.pixnet.net/blog')

所得到的res再餵給BeautifulSoup 分析, 然後用find()找到h2 tag

res = requests.get('http://tn00343140a.pixnet.net/blog')
soup = BS(res.text, 'html.parser')
print(soup.find('h2'))

得到這樣的結果

擷取.PNG

那應該是編碼不對, 所以加上encoding='utf-8', 目前完整程式碼是這樣的

import requests
from bs4 import BeautifulSoup as BS

res = requests.get('http://tn00343140a.pixnet.net/blog')
res.encoding='utf-8'
soup = BS(res.text, 'html.parser')
print(soup.find('h2'))

出現這樣的結果, 表示有非常多東西是被h2 tag給包圍

擷取.PNG

很顯然的, 我們要的文字並非第一個, find()只會回傳第一個找到的資料~

所以改成用find_all()方法, 那因為我要取得的是標題文字

所以我使用.text 來 print出文字

list1 = soup.find_all('h2')
for i in list1 :
    print(i.text)

擷取.PNG

好像有點不夠理想, 再研究看看!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arrow
arrow
    文章標籤
    requests python beautifulsoup
    全站熱搜
    創作者介紹
    創作者 張郎屋 的頭像
    張郎屋

    張郎生活的筆記

    張郎屋 發表在 痞客邦 留言(0) 人氣()