安裝
通過 pip 安裝 Beautiful Soup 模塊:pip install beautifulsoup4
。
還可以使用 PyCharm IDE 來寫代碼,在 PyCharm 中的 Preferences 中找到 Project ,在里面搜索 Beautiful Soup 模塊,進行安裝即可。
創建 BeautifulSoup 對象
Beautiful Soup 模塊廣泛使用從網頁中得到數據。我們能夠使用 Beautiful Soup 模塊從 HTML/XML 文檔中提取任何數據,例如,網頁中的所有鏈接或者標簽內的內容。
為了實現這一點,Beautiful Soup 提供了不同的對象和方法。任何的 HTML/XML 文檔能夠轉化成不同的 Beautiful Soup 對象,這些對象有著不同的屬性和方法,我們能夠從中提取到需要的數據。
Beautiful Soup 總共有如下三種對象:
創建 BeautifulSoup 對象
創建一個 BeautifulSoup 對象是任何 Beautiful Soup 工程的起點。
BeautifulSoup 可以通過傳一個字符串或者類文件對象(file-like object),例如機器上的文件或者網頁。
通過字符串創建 BeautifulSoup 對象
在 BeautifulSoup 的構造器中通過傳遞一個字符串來創建對象。
helloworld = '<p>Hello World</p>'soup_string = BeautifulSoup(helloworld)print soup_string <html><body><p>Hello World</p></body></html>
通過類文件對象創建 BeautifulSoup 對象
在 BeautifulSoup 的構造器中通過傳遞一個類文件對象(file-like object)來創建對象。這在解析在線網頁時非常有用。
url = "http://www.glumes.com"page = urllib2.urlopen(url)soup = BeautifulSoup(page)print soup
除了傳遞類文件對象之外,我們還可以傳遞本地文件對象到 BeautifulSoup 的構造器來生成對象。
with open('foo.html','r') as foo_file : soup_foo = BeautifulSoup(foo_file)print soup_foo
為 XML 解析創建 BeautifulSoup 對象
Beautiful Soup 模塊同樣能夠用來解析 XML 。
當創建一個 BeautifulSoup 對象時, Beautiful Soup 模塊將會選擇合適的 TreeBuilder 類來創建 HTML/XML 樹。默認情況下,選擇 HTML TreeBuilder 對象,它將使用默認的 HTML 解析器,產生一個 HTML 結構樹。在上面的代碼中,由字符串生成 BeautifulSoup 對象,就是將它解析成了 HTML 樹結構。
如果我們想要 Beautiful Soup 模塊將輸入的內容解析為 XML 類型,那么就需要在 Beautiful Soup 構造器中精確指定使用的 features 參數。通過特定的 features 參數,Beautiful Soup 將會選擇最適合的 TreeBuilder 類來滿足我們想要的特征。
理解 features 參數
每一個 TreeBuilder 根據它使用的解析器將會有不同的特征。因此,輸入的內容根據傳遞到構造器的 features 參數也會有不同的結果。
新聞熱點
疑難解答