標籤:http attrs 組合 title 簡單 nic nts 一個個 gpo
簡單來說,Beautiful Soup是python的一個庫,最主要的功能是從網頁抓取資料。
Beautiful Soup自動將輸入文檔轉換為Unicode編碼,輸出文檔轉換為utf-8編碼。
Beautiful Soup將複雜HTML文檔轉換成一個複雜的樹形結構,每個節點都是Python對象,所有對象可以歸納為4種:Tag,NavigableString BeautifulSoup Comment
1.Tag 是什嗎?通俗點講就是 HTML 中的一個個標籤
利用 soup加標籤名輕鬆地擷取這些標籤的內容,是不是感覺比Regex方便多了?soup.title 得到的是title標籤,soup.p 得到的是文檔中的第一個p標籤,要想得到所有標籤,得用find_all函數。find_all 函數返回的是一個序列,可以對它進行迴圈,依次得到想到的東西.。
對於 Tag,它有兩個重要的屬性,是 name 和 attrs
2.NavigableString
既然我們已經得到了標籤的內容,那麼問題來了,我們要想擷取標籤內部的文字怎麼辦呢?很簡單,用 .string 即可
3.BeautifulSoup
BeautifulSoup 對象表示的是一個文檔的全部內容.大部分時候,可以把它當作 Tag 對象,是一個特殊的 Tag
4. Comment
Comment 對象是一個特殊類型的 NavigableString 對象,其實輸出的內容仍然不包括注釋符號
5.遍曆文檔樹
直接子節點:
.contents
tag 的 .content 屬性可以將tag的子節點以列表的方式輸出。可以使用 [num] 的形式獲得。使用contents向後遍曆樹,使用parent向前遍曆樹
.children
它返回的不是一個 list,不過我們可以通過遍曆擷取所有子節點。我們列印輸出 .children 看一下,可以發現它是一個 list 產生器對象。
可以使用list可以將其轉化為列表。當然可以使用for 語句遍曆裡面的孩子。
所有子孫節點:
6.搜尋文檔樹
最常用的是find_all()函數
7.CSS選取器
在寫 CSS 時,標籤名不加任何修飾,類名前加點,id名前加 #
在這裡我們也可以利用類似的方法來篩選元素,用到的方法是 soup.select(),傳回型別是 list
1.通過標籤名尋找
2.通過類名尋找
3.通過id尋找
4.組合尋找
5.屬性尋找
參考:http://blog.csdn.net/freeking101/article/details/60886125
python爬蟲 BeautifulSoup