python爬蟲 BeautifulSoup

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.