今日份爬蟲與數據處理

BeautifulSoup4的使用:
創建一個bs4的對象,soup=BeautifulSoup(‘html’,’ 解析方式’)
之後我們可以使用soup.Tag ,tag是某一標籤,爲獲取他的內容\

<p class=‘title’ name=‘dromouse’>你好</p>

當然我們標籤就有兩個重要的屬性name和attrs,是指名字和屬性,
對於tag來說,他的名字就是他的標籤名,soup.p.name的名字就是p
*attrs是一個字典類型。soup.p.attrs輸出的就可能是{class:[‘title’],name:‘dromouse’}
當然也可以這樣去獲取某一屬性 soup.p.attrs[‘class’]/soup.p[‘class’],得到的是一個[‘title’](列表)

get方法:
get方法用得到標籤下的屬性值,注意這是一個重要的方法,比如你要得到<img src="#">
標籤下的url,那麼就可以使用soup.img.get(‘src’)

String方法
得到標籤下的文本內容,只有在此標籤下沒有子標籤或者一個子標籤纔會返回其中的內容

get_text方法:
可以得到一個標籤中的所有文本內容

**搜索文檔樹find_all(name,attrs,recursive,text,kwargs)

返回的是一個列表 如查找所有p標籤
soup.find_all(‘p’)
text參數時可以搜索文檔中的字符串內容。
我們還可以添加limit參數,當文檔樹很大那麼搜索很慢,我們可以設置limit參數限制返回的結果數量。

CSS選擇器:
在寫css時,標籤名不佳任何修飾,id前面加#。這這裏我們也可以運用相似的方式來篩選元素,運用的是soup.select(),返回類型是list
1.通過id名查找 :
soup.select(’#link’)
2.組合查找:
查找p標籤下id爲link1 soup.select(‘p #link1’)
查找子標籤 soup.select(‘head>title’)
3.屬性查找:
查找時候還可以加入屬性元素,屬性用中括號括起來,標籤與屬性爲同一節點時,中間不能加空格soup.select(‘a[class=“sister”]’)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章