beautiful soup庫,也叫beautifulsoup4 或 bs4 約定引用方式如下,即主要是用beautifulsoup 類
from bs4 import beautifulsoup
import bs4
from bs4 import beautifulsoup
soup = beautifulsoup("data", "html.parser")
# 亦可開啟本地html檔案
soup2 = beautifulsoup(open("c:"), "html.parser")
其中 "html.parser"是bs4庫的解析器
解析器使用方法
條件bs4的html解析器
beautifulsoup(mk, 'html.parser')
安裝bs4庫
lxml的html解析器
beautifulsoup(mk, 'lxml')
pip install lxml
lxml的xml解析器
beautifulsoup(mk, 'xml')
pip install lxml
html5lib的解析器
beautifulsoup(mk, 'html5lib')
pip install html5lib
標籤,最基本的資訊組織單元,分別用<>和標明開頭和結尾
任何存在於html語法中的標籤都可以用soup.訪問獲得
當html文件中存在多個相同對應內容時,soup.返回第乙個
from bs4 import beautifulsoup
soup = beautifulsoup(demo, "html.parser")
print(soup.title)
# 列印輸出
demo page
tag = soup.a
print(tag)
# 列印輸出
python
標籤的名字,的名字是'p',使用格式:.name,型別為字串
from bs4 import beautifulsoup
soup = beautifulsoup(demo, "html.parser")
print(soup.a.name)
# 列印輸出
'a'
標籤的屬性,字典形式組織,使用格式:.attrs ,型別為字典型別
from bs4 import beautifulsoup
soup = beautifulsoup(demo, "html.parser")
tag = soup.a
print(tag.attrs)
# 列印輸出
print(tag.attrs['class'])
# 列印輸出
['py']
標籤內非屬性字串,<>…中字串,使用格式:.string
from bs4 import beautifulsoup
soup = beautifulsoup(demo, "html.parser")
print(soup.a)
# 列印輸出
python
print(soup.a.string)
# 列印輸出
'python'
標籤內字串的注釋部分,一種特殊的comment型別
from bs4 import beautifulsoup
soup = beautifulsoup("
", "html.parser")
print(soup.b.string)
# 列印輸出
'this is a comment'
# type(soup.b.string)為print(soup.p.string)
# 列印輸出
'this is not a comment'
# type(soup.p.string)為
屬性
說明.contents
子節點的列表,將所有兒子節點存入列表
.children
子節點的迭代型別,與.contents類似,用於迴圈遍歷兒子節點
.descendants
子孫節點的迭代型別,包含所有子孫節點,用於迴圈遍歷
for child in soup.body.children:
print(child)
for child in soup.body.descendants:
print(child)
屬性
說明.parent
節點的父親標籤
.parents
節點先輩標籤的迭代型別,用於迴圈遍歷先輩節點
遍歷所有先輩節點時,包括soup本身,所以使用時要區別判斷
from bs4 import beautifulsoup
soup = beautifulsoup(demo, "html.parser")
for parent in soup.a.parents:
if parent is none:
print(parent)
else:
print(parent.name)
屬性
說明.next_sibling
返回按照html文字順序的下乙個平行節點標籤
.previous_sibling
返回按照html文字順序的上乙個平行節點標籤
.next_siblings
迭代型別,返回按照html文字順序的後續所有平行節點標籤
.previous_siblings
迭代型別,返回按照html文字順序的前續所有平行節點標籤
平行遍歷發生在同乙個父節點下的各節點間
# 遍歷後續節點
for sibling in soup.a.next_sibling:
print(sibling)
# 遍歷前續節點
for sibling in soup.a.previous_sibling:
print(sibling)
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...
網路爬蟲 多執行緒爬蟲
多執行緒爬蟲 import threading class one threading.thread def init self threading.thread.init self def run self for i in range 0,10 print 我是執行緒1 class two th...