爬蟲資料 Beautiful Soup

2021-10-02 13:58:13 字數 3336 閱讀 1740

安裝

pip intsall bs4

beautiful soup的簡介

beautiful soup是python的乙個庫,最主要的功能是從網頁抓取資料,官方解釋如下:

github位址

和lxml一樣,beautifulsoup也是乙個html/xml的解析器,主要功能也是如何解析和提取html/xml資料

抓取工具

速度使用難度

正則最快

使用困難

lxml快簡單

beautifulsoup

慢最簡單

當我們的html**不完整的時候,我們這時候就會需要使用beautiful, beautiful會自動幫我們補全html的**所缺失的結構

prettify: 將html**進行漂亮的列印

# -*- coding: utf-8 -*-

# @time : 2020/2/5 12:37

# @author : 大資料小j

# 匯入

from bs4 import beautifulsoup

html_doc =

"""the dormouse's story

once upon a time there were three little sisters; and their names were

elsie,

lacie and

tillie;

and they lived at the bottom of a well.

..."""

soup = beautifulsoup(html_doc,

'html.parser'

)print

(soup.prettify(

))

執行結果:

>

>

>

the dormouse's story

title

>

head

>

>

class

="title"

>

>

the dormouse's story

b>

p>

class

="story"

>

once upon a time there were three little sisters; and their names were

class

="sister"

href

=""id=

"link1"

>

elsie

a>

,class

="sister"

href

=""id=

"link2"

>

lacie

a>

andclass

="sister"

href

=""id=

"link3"

>

tillie

a>

;and they lived at the bottom of a well.

p>

class

="story"

>

...p>

body

>

html

>

beautifulsoup

find: 查詢的是第乙個標籤

attrs={}:裡面傳入的字典,屬性對應值

find_all: 查詢的所有的標籤

attrs={}:裡面傳入的字典,屬性對應值

string: 返回乙個子節點內容

strings: 返回多條資料的內容(但包括換行符以及資料)

stripped_strings: 返回多條資料內容(返回的結果為純文字資料)

# -*- coding: utf-8 -*- 

# @time : 2020/2/4 22:23

# @author : 大資料小j

from bs4 import beautifulsoup

html_doc =

"""職位名稱

職位類別

人數地點

發布時間

區塊鏈高階研發工程師

技術類1深圳

2018-11-25

金融雲高階後台開發

技術類2深圳

2018-11-24

高階研發工程師

技術類2深圳

2018-11-24

高階影象演算法工程師

技術類2深圳

2018-11-24

高階業務運維工程師

技術類2深圳

2018-11-24

"""soup = beautifulsoup(html_doc,

'lxml'

)# 1.獲取所有tr標籤

data = soup.find_all(

'tr'

)# 查詢所有的tr標籤

# 2.獲取第2個tr標籤

data2 = soup.find_all(

'tr')[

1]# 3.獲取所有class等於even的tr標籤

data3 = soup.find_all(

'tr'

, attrs=

)# 4.獲取所有的a標籤的href屬性

data4s = soup.find_all(

'a')[1

:]for data4 in data4s:

print

(data4.get(

'href'))

# 5.獲取所有的職位資訊(純文字)

data5s = soup.find_all(

'tr'

)for data5 in data5s[1:

]:print

(list

(data5.strings)

)

beautifulsoup4四大物件種類

beautifulsoup4將複雜html文件轉換成乙個複雜的樹形結構,每個節點都是python物件,所有物件可以歸納為4種:

遍歷文件樹

contents和children

Python學習之BeautifulSoup庫詳解

beautifulsoup庫是解析 遍歷 維護 標籤樹 的功能庫 學習python爬蟲 有所幫助。beautifulsoup庫我們常稱之為bs4,匯入該庫為 from bs4 import beautifulsoup。其中,import beautifulsoup即主要用bs4中的beautiful...

python3安裝beautifulsoup全過程

1.環境變數 參考設定 python3環境變數設定 解壓安裝包至python安裝目錄下 3.在命令列進入beautifulsoup的安裝目錄下,輸入python setup.py install 安裝成功後,進入python lib site packages將bs4資料夾複製到lib資料夾下,將p...

爬蟲資料之爬蟲流程

多頁面爬蟲流程 有的網頁存在多頁的情況,每頁的網頁結構都相同或類似,這種型別的網頁爬蟲流 程為 手動翻頁並觀察各網頁的url 構成特點,構造出所有頁面的url 存入列表中。根據url 列表依次迴圈取出url 定義爬蟲函式。迴圈呼叫爬蟲函式,儲存資料。迴圈完畢,結束爬蟲程式 跨頁面爬蟲流程 定義爬取函...