BeautifulSoup的重要操做

0806自我總結

BeautifulSoup

BeautifulSoup相關概念總結:http://www.javashuo.com/article/p-dvrxkzjp-hs.htmlcss

css基礎以及選擇器基礎:http://www.javashuo.com/article/p-fgbqhffs-eu.htmlhtml

css選擇器進階:http://www.javashuo.com/article/p-tocyicjc-er.htmlpython

一.BeautifulSoup的重要操做

  • 解析頁面code

    • 最經常使用rp_lxml= BeautifulSoup(response.text,'lxml')其餘能夠轉至概念
  • 提取元素xml

    主要有4大元素htm

    • Tag: HTML 中的一個個標籤
    • NavigableString:能夠遍歷的字符串
    • BeautifulSoup:BeautifulSoup 對象表示的是一個文檔的所有內容.大部分時候,能夠把它看成 Tag 對象,是一個特殊的 Tag
    • Comment:Comment 對象是一個特殊類型的 NavigableString 對象,其實輸出的內容仍然不包括註釋符號。
  • 元素操做對象

二.Tap對象相關操做

1.對於tap的選取

1.find

使用re_lxml.find('css選擇器')blog

重點只選擇第一個出現的文檔

2.select

使用re_lxml.select('css選擇器')字符串

重點會把知足CSS選擇器全部內容都顯示出來,輸出爲列表的形式

3.直接操做

使用re_lxml.標籤名.標籤名而不是用css選擇器

重點只選擇第一個出現的

4.find_all

會把知足CSS選擇器全部內容都顯示出來,輸出爲列表的形式

可是有幾個優勢

  • 使用多個指定名字的參數能夠同時過濾tag的多個屬性

    rp_lxml.find_all('屬性1','屬性2')

  • 要某個標籤不要其中某個屬性

    rp_lxml.find_all('標籤名',class_='屬性')

  • 定義一個字典參數來搜索包含特殊屬性的tag

    rp_lxml.find_all(attrs={'屬性名':'屬性值'})

2.對於tap的操做

1.標籤之間的轉換

詳情至BeautifulSoup概念

2.選取的元素相關操做

  • tap.text:內容的文本
  • tap.name:標籤名字
  • tap.attrs:標籤的屬性
  • tap..標籤p.attrs:標籤內標籤p的屬性
  • tap.['屬性名']:標籤的指定屬性對應的內容
  • tap.標籤p.['屬性名']:標籤內標籤p的指定屬性屬性

  • tap.get('屬性名'):標籤的指定屬性對應的內容

  • tap.標籤p.get('屬性名'):標籤內標籤p的指定屬性屬性

三.NavigableString對象相關操做

NavigableString.string便可獲取標籤內部的文字

四.BeautifulSoup對象相關操做

他是一種特殊的Tap全部tap能夠的操做他均可以

rp_lxml.attrs爲{}

rp_lxml.name爲[document]

剩下的能夠去嘗試不過我的感受沒啥意義

五.Comment對象相關操做

我以爲吧一個能夠用用就是判斷他是否是這個數據類型

print(type(未知對象.string))看他是否是comment對象

相關文章
相關標籤/搜索