Beautiful Soup模塊
阿新 • • 發佈:2018-10-30
clas 轉換 縮進 cut 找到 soup ott use 導航
Beautiful Soup 是一個可以從HTML或XML文件中提取數據的Python庫,它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間.
快速開始,以如下html作為例子.
html_doc = """ <html><head><title>The Dormouse‘s story</title></head> <body> <p class="title"><b>The Dormouse‘s story</b></p><p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>; and they lived at the bottom of a well.</p> <p class="story">...</p> """
使用BeautifulSoup解析這段代碼,能夠得到一個 BeautifulSoup
的對象,並能按照標準的縮進格式的結構輸出:
from bs4 import BeautifulSoup soup = BeautifulSoup(html_doc,‘html.parser‘) print(soup.prettify()) <html> <head> <title> The Dormouse‘s story </title> </head> <body> <p class="title"> <b> The Dormouse‘s story </b> </p> <p class="story"> Once upon a time there were three little sisters; and their names were <a class="sister" href="http://example.com/elsie" id="link1"> Elsie </a> , <a class="sister" href="http://example.com/lacie" id="link2"> Lacie </a> and <a class="sister" href="http://example.com/tillie" id="link3"> Tillie </a> ; and they lived at the bottom of a well. </p> <p class="story"> ... </p> </body> </html>
幾個簡單的瀏覽結構化數據的方法:
soup.title <title>The Dormouse‘s story</title> soup.title.name ‘title‘ soup.title.string "The Dormouse‘s story" soup.title.strings <generator object _all_strings at 0x0000025B5572A780> soup.title.parent.name ‘head‘ soup.p <p class="title"><b>The Dormouse‘s story</b></p> soup.p[‘class‘] [‘title‘] soup.a <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a> soup.find_all(‘a‘) [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>] soup.find(id=‘link3‘) <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>
從文檔中找到所有<a>標簽的鏈接:
for link in soup.find_all(‘a‘): print(link.get(‘href‘)) http://example.com/elsie http://example.com/lacie http://example.com/tillie
從文檔中獲取所有文字內容:
print(soup.get_text()) The Dormouse‘s story The Dormouse‘s story Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.
Beautiful Soup模塊