02 解析和提取網頁中的資料

2021-10-03 21:31:24 字數 1766 閱讀 1371

beautifulsoup解析資料的用法:

bs物件 = beautifulsoup(要解析的文字,'解析器')

在括號中,要輸入兩個引數,第0個引數是要被解析的文字,它必須是字串

括號中的第1個引數用來標識解析器:html.parser(並不唯一)

提取資料

仍然使用beautifulsoup來提取資料。

這一步,又可以分為兩部分知識:find()與find_all(),以及tag物件(標籤物件)。

find()與find_all()是beautifulsoup物件的兩個方法,

它們可以匹配html的標籤和屬性,把beautifulsoup物件裡符合要求的資料都提取出來。

find()只提取首個滿足要求的資料。

find()方法將**從上往下找,找到符合條件的第乙個資料,不管後面還有沒有滿足條件的其他資料,停止尋找,立即返回。

而find_all()顧名思義(find all:查詢全部),提取出的是所有滿足要求的資料。

**從上往下找,一直到**的最後,把所有符合條件的資料揣好,一起打包返回。

知識點:

'''

find()與find_all()的用法:

find(),用於提取滿足要求的首個資料,beautifulsoup物件.find(標籤,屬性)

示例:soup.find('div',class_='books')

find_all(),提取滿足要求的所有資料,beautifulsoup物件.find_all(標籤,屬性)

示例:soup.find_all('div',class_='books')

''''''tag物件的三種常用屬性與方法

tag.find()和tag.find_all(),提取tag中的tag

tag.text,提取tag中的文字

tag['屬性名'],輸入引數:屬性名,可以提取tag中這個屬性的值

'''#除了我們拿到的資料之外;執行結果的資料型別,又是三個,

#用find()提取出來的資料型別和剛才一樣,還是tag物件。接下來要做的,就是把tag物件中的文字內容提出來。

#這時,可以用到tag物件的另外兩種屬性——tag.text(獲得標籤中的值),和tag['屬性名'](獲得屬性值)。

#我們用tag.text提出tag物件中的文字,用tag['href']提取出url。

練習題:
你需要爬取的是名言網中的名言並且列印。

文章url:

首先,記得呼叫requests庫和beautifulsoup模組

然後,按照爬蟲的步驟來寫**:

第1步:獲取資料 requests.get()

第2步:解析資料 beautifulsoup(網頁源**的字串格式,'html.parser')

......

'''

例項**如下:

import requests

from bs4 import beautifulsoup

res = requests.get('')

print(res.status_code)

soup = beautifulsoup(res.text,'html.parser')

items = soup.find_all(class_='text')

for item in items:

print(item.text)

提取網頁中的超連結

using system using system.xml using system.text using system.net using system.io using system.collections using system.text.regularexpressions console...

提取網頁中的超連結

using system using system.xml using system.text using system.net using system.io using system.collections using system.text.regularexpressions console...

提取網頁中的超連結

using system using system.xml using system.text using system.net using system.io using system.collections using system.text.regularexpressions console...