③ select語法說明¶
在這個教學裡面,我們說明一下select
的用法。
select
主要是使用類似css selector
的方式來選取標籤,它的使用方式比find
要有彈性許多,是我們比較建議的尋找標籤的方式。
css selector
的使用方法可以參考參考資料
中的連結。
載入套件¶
In [ ]:
Copied!
from bs4 import BeautifulSoup
from bs4 import BeautifulSoup
範例 ⓵¶
In [ ]:
Copied!
s1 = """
<body>
<h1>哈囉!HTML!</h1>
<div class="class1">
<p>這是第一個p標籤內容!</p>
<p>這是第二個p標籤內容!</p>
</div>
<div class="class2">
<p>這是第三個p標籤內容!</p>
<p>這是第四個p標籤內容!</p>
</div>
</body>
"""
s1 = """
"""
哈囉!HTML!
這是第一個p標籤內容!
這是第二個p標籤內容!
這是第三個p標籤內容!
這是第四個p標籤內容!
In [ ]:
Copied!
soup1 = BeautifulSoup(s1)
soup1 = BeautifulSoup(s1)
In [ ]:
Copied!
soup1.select('div.class1 p')
soup1.select('div.class1 p')
範例 ⓶¶
In [ ]:
Copied!
s2 = """
<body>
<h1>哈囉!HTML!</h1>
<div class="class1">
<p>這是第一個p標籤內容!</p>
<div>
<p>這是第二個p標籤內容!</p>
</div>
</div>
<div class="class2">
<p>這是第三個p標籤內容!</p>
<p>這是第四個p標籤內容!</p>
</div>
</body>
"""
s2 = """
"""
哈囉!HTML!
這是第一個p標籤內容!
這是第二個p標籤內容!
這是第三個p標籤內容!
這是第四個p標籤內容!
In [ ]:
Copied!
soup2 = BeautifulSoup(s2)
soup2 = BeautifulSoup(s2)
In [ ]:
Copied!
soup2.select("div.class1 p")
soup2.select("div.class1 p")
In [ ]:
Copied!
soup2.select("div.class1 > p")
soup2.select("div.class1 > p")
In [ ]:
Copied!
soup2.select("div.class1 div p")
soup2.select("div.class1 div p")
範例 ⓷¶
In [ ]:
Copied!
s3 = """
<body>
<h1>哈囉!HTML!</h1>
<div class="class1">
<p>這是第一個p標籤內容!</p>
<div>
<p data-no="two">這是第二個p標籤內容!</p>
</div>
</div>
<p class="class1">這是第三個p標籤內容!</p>
<p id="p4">這是第四個p標籤內容!</p>
</body>
"""
s3 = """
哈囉!HTML!
這是第一個p標籤內容!
這是第二個p標籤內容!
這是第三個p標籤內容!
這是第四個p標籤內容!
"""In [ ]:
Copied!
soup3 = BeautifulSoup(s3)
soup3 = BeautifulSoup(s3)
In [ ]:
Copied!
soup3.select(".class1")
soup3.select(".class1")
In [ ]:
Copied!
soup3.select("#p4")
soup3.select("#p4")
In [ ]:
Copied!
soup3.select('p[data-no="two"]')
soup3.select('p[data-no="two"]')
📖 參考資料¶
CSS Selector 的使用請參考:
BeautifulSoup 的其他使用方式,請參考: