1 6 網頁解析器beautifulsoup

2021-07-31 11:21:11 字數 2965 閱讀 5923

beautifulsoup介紹

beautifulsoup實戰

為了實現解析器,可以選擇使用

1. 正規表示式、

2. html.parser、

3. beautifulsoup、

4. lxml等,

這裡我們選擇beautifulsoup。

其中,正規表示式基於模糊匹配,而另外三種則是基於dom結構化解析。而且beautifulsoup可以引用另外兩個,所以更強大。

結構化解析是www官方的解析方法,是以樹的形式對文件進行逐層解析。

pip install beautifulsoup4
使用示意圖:

建立beautifulsoup物件

from bs4 import beautifulsoup

html_doc = """ # 定義乙個長字串,儲存html**

the dormouse's storytitle>

head>

class="title">

the dormouse's storyb>

p>

class="story">once upon a time there were three little sisters; and their names were

href=""

class="sister"

id="link1">elsiea>,

href=""

class="sister"

id="link2">laciea> and

href=""

class="sister"

id="link3">tilliea>;

and they lived at the bottom of a well.p>

class="story">...p>

"""soup = beautifulsoup(html_doc,'html.parser',from_encoding='utf-8')

# 三個引數分為為:傳入的html字串;使用的解析器;編碼方式

print(soup.prettify())

搜尋節點(從dom樹中)

find與find_all的引數都是這三個:

1.html標籤名 2.標籤屬性 3.標籤裡面的內容

匹配到了,之後如何輸出?

仔細研讀!

# coding:utf-8

from bs4 import beautifulsoup

import re

html_doc = """ # 定義乙個長字串,儲存html**

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')

# 建立bs物件,其三個引數分為為:傳入的html字串;使用的解析器;編碼方式

print('提取所有的連線出來')

links = soup.find_all('a')

for link in links:

print(link.name, link['href'], link['class'], link.get_text())

print('獲取lacie連線')

link_node = soup.find('a', href='')

print(link_node.name, link_node['href'], link_node.get_text())

print('用強大的 正則語法 匹配 !!!!!!!!')

link_node = soup.find('a', href=re.compile(r"ill"))

print(link_node.name, link_node['href'], link_node.get_text())

print('獲取p標籤')

p_node = soup.find('p', class_=re.compile(r"ti"))

print(p_node.name, p_node['class'], p_node.get_text())

print('抓取暗鏈結')

link_node = soup.find_all(style='display:none;')

print(link_node)

# print(link_node.name, link_node.get_text())

# 這裡發現 如果只有乙個暗鏈結,則不能用findall,之恩那個用find,那麼不知道有幾個的情況怎麼辦呢?

03網頁解析器

網頁解析器 從網頁中提取有價值資料的工具,也會提取到網頁中所有的url,用於後續的訪問。python網頁解析器 1.正規表示式 最直觀,將網頁當作是乙個字串,進行模糊匹配但如果對於較為複雜的文件,會相當複雜 2.html.parser python自帶 3.beautifulsoup 第三方外掛程式...

python爬蟲 五 網頁解析器

網頁解析器 是從網頁中提取有價值資料的工具 python 有四種網頁解析器 1 正規表示式 模糊匹配解析 2 html.parser 結構化解析 3 beautiful soup 結構化解析 4 lxml 結構化解析 其中 beautiful soup 功能很強大,有html.parse和 lxml...

網頁解析器

學習任務 1.認識網頁解析器 學習目標 知識目標 1.熟悉網頁解析器 能力目標 1.能夠自主編寫網頁解析器 獲取新url函式 獲取新的url def get new urls self,page url,soup 儲存url new urls set 獲取所有的url 獲取每乙個url new ur...