爬蟲Beautiful Soup的CSS選擇器

2021-09-08 23:39:53 字數 2417 閱讀 2517

一 點睛

beautiful soup還提供了另外一種選擇器,那就是css選擇器。如果對web開發熟悉的話,那麼對css選擇器肯定也不陌生。如果不熟悉的話,可以參考了解。

使用css選擇器時,只需要呼叫select()方法,傳入相應的css選擇器即可。

二 基礎用法

1 **

html='''

hello

'''from bs4 import beautifulsoup

soup = beautifulsoup(html, 'lxml')

print(soup.select('.panel .panel-heading'))

print(soup.select('ul li'))

print(soup.select('#list-2 .element'))

print(type(soup.select('ul')[0]))

2 結果

e:\webspider\venv\scripts\python.exe e:/webspider/4_2.py

[hello

][foo, bar, jay, foo, bar]

[foo, bar]

3 說明

這裡我們用了3次css選擇器,返回的結果均是符合css選擇器的節點組成的列表。例如,select('ul li')則是選擇所有ul節點下面的所有li節點,結果便是所有的li節點組成的列表。

最後一句列印輸出了列表中元素的型別。可以看到,型別依然是tag型別。

三 巢狀選擇

1 **

html='''

hello

'''from bs4 import beautifulsoup

soup = beautifulsoup(html, 'lxml')

# select()方法同樣支援巢狀選擇。例如,先選擇所有ul節點,再遍歷每個ul節點,選擇其li節點

for ul in soup.select('ul'):

print(ul.select('li'))

2 結果

e:\webspider\venv\scripts\python.exe e:/webspider/4_2.py

[foo, bar, jay]

[foo, bar]

3 說明

可以看到,這裡正常輸出了所有ul節點下所有li節點組成的列表。

四 獲取屬性

1 **

html='''

hello

'''from bs4 import beautifulsoup

soup = beautifulsoup(html, 'lxml')

# 嘗試獲取每個ul節點的id屬性

for ul in soup.select('ul'):

print(ul['id'])

print(ul.attrs['id'])

2 結果

e:\webspider\venv\scripts\python.exe e:/webspider/4_2.py

list-1

list-1

list-2

list-2

3 說明

可以看到,直接傳入中括號和屬性名,以及通過attrs屬性獲取屬性值,都可以成功。

五 獲取文字

1 **

html='''

hello

'''from bs4 import beautifulsoup

soup = beautifulsoup(html, 'lxml')

# 用string屬性和get_text()獲得結果一樣

for li in soup.select('li'):

print('get text:', li.get_text())

print('string:', li.string)

2 結果

e:\webspider\venv\scripts\python.exe e:/webspider/4_2.py

get text: foo

string: foo

get text: bar

string: bar

get text: jay

string: jay

get text: foo

string: foo

get text: bar

string: bar

爬蟲 BeautifulSoup 模組

二 根據這個dom樹就可以按照節點的名稱 屬性和文字搜尋節點 find all 方法會搜尋出所有滿足要求的節點,find 方法只會搜尋出第乙個滿足要求的節點 兩個方法的引數一模一樣 三 得到節點以後,就可以訪問它的名稱 屬性 文字。a為標籤名稱 超連結 href,class為屬性,顯示在頁面上的是p...

爬蟲beautifulsoup實踐

爬蟲beautifulsoup實踐 一 觀察response。首先,在chrome瀏覽器裡觀察一下該網頁的response內容,可以觀察到,的url都存放在img標籤下面,srcset屬性裡面,而且它們的class屬性都為 2zekz。二 理清爬蟲步驟的思路。規律已經找出來了 下一步就把爬蟲的思路寫...

爬蟲資料 Beautiful Soup

安裝 pip intsall bs4 beautiful soup的簡介 beautiful soup是python的乙個庫,最主要的功能是從網頁抓取資料,官方解釋如下 github位址 和lxml一樣,beautifulsoup也是乙個html xml的解析器,主要功能也是如何解析和提取html ...