两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

        BeautifulSoup在Python中是一個比較受歡迎的第三方庫,它是一款比較優(yōu)秀的網(wǎng)頁解析庫,里面提供了很多接口幫助我們來處理導航、搜索、修改分析樹,它的查找提取功能非常好用,能夠節(jié)省程序員大量的時間。

        BeautifulSoup最新版為BeautifulSoup4,我們可以通過pip來安裝,也可以在Pycharm中直接找到進行下載。

python爬蟲12 

        Pip安裝過程如圖:

 python爬蟲13

1. BeautifulSoup的使用

        我們先通過一段代碼來測試使用一下它的用法:

Dot = """
<html><head><title>dotcpp</title></head>
<body>
<p><b>c語言網(wǎng)</b></p>
<p>編程網(wǎng)站
<a href="http://www.sztianhecheng.cn/" id="link1">home</a>,
<a href="https://blog.dotcpp.com/" id="link2">blog</a>
<a href="http://www.sztianhecheng.cn/oj/problemset.html" id="link3">oj</a></p>
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(dot, "html.parser")
print(soup.prettify())

        輸出結(jié)果為:

 python爬蟲14

        我們可以通過這種方式來解析網(wǎng)頁,我們還可以通過它來進一步獲取更精確的信息,例如:

soup = BeautifulSoup(html,"html.parser") 
print(suop.prettify())
print(suop.title)  # 獲取title標簽的所有內(nèi)容
print(suop.title.name) # 獲取title標簽的名字
print(suop.title.string) # 獲取title標簽的文本內(nèi)容
print(suop.head) # 獲取head標簽的所有內(nèi)容
print(suop.div)# 獲取第一個div標簽中的所有內(nèi)容
print(suop.div["id"]) # 獲取第一個div標簽的id的值
print(suop.a)  # 獲取第一個a標簽中的所有內(nèi)容
print(suop.find_all("a")) # 獲取所有的a標簽,并遍歷打印a標簽中的href的值
print(suop.find(id = "dot")) # 獲取id="dot"

        輸出結(jié)果即為對應(yīng)的信息,注意解析html網(wǎng)頁的解析方式,我們一直采用了Python中自帶的html.parser,我們還可以選擇lxml HTML、lxml XML和html5lib等解析器,他們分別有著優(yōu)劣點,如果系統(tǒng)中有C語言庫的可以選擇下載前兩者解析器,如果不想再下載過多插件的也可以直接選擇我們上面用到的即可,我們在使用BeautifulSoup的時候一定要注意的就是網(wǎng)頁解析,正確的解析方式十分重要。

2. BeautifulSoup4的四個對象

        Beautiful Suop把網(wǎng)頁中的信息轉(zhuǎn)換成一個復雜的樹形結(jié)構(gòu),通過子樹分解為四個對象,分別是Tag、NavigableSting、BeautifulSoup、Comment。

        1) Tag

        Tag與它的對應(yīng)的漢語一個意思,對應(yīng)的就是HTML中的標簽,像我們在上面使用到的:

print(suop.title) # 獲取title標簽的名稱
print(suop.a) # 獲取所有的a標簽中的所有內(nèi)容

        他們都屬于標簽信息,我們可以通過標簽名來獲取到這些標簽中的內(nèi)容,有一點需要注意的是在查找的時候,對應(yīng)的是符合要求的第一個標簽,Tag有兩個屬性,分別是name和attrs,name也就是標簽的名字,attrs對應(yīng)class、id等信息。

        2) NavigableSting

        NavigableSting對應(yīng)的是標簽內(nèi)部的文字,例如:

print(suop.title.string) # 獲取標簽的所有內(nèi)容

        通過這種方式就可以直接獲取到標簽內(nèi)部的文字。

        3) BeautifulSoup

        BeautifulSoup對象對應(yīng)的是文檔中的內(nèi)容,它類似于一個特殊的標簽,我們可以獲取到它的類型、名稱和屬性,也就是上面我們所使用到的:

soup = BeautifulSoup(html,"html.parser")

        4) Comment

        Comment對象是一個特殊的NavigableSting對象,它輸出的內(nèi)容沒有注釋符號,如果不加以處理會影響我們對文檔的解析,因為這種方式會忽略掉文檔的注釋,

        因此注釋中的內(nèi)容會以代碼格式被解析出來,進而影響我們的后續(xù)操作,所有我們 一般會采用.string來輸出內(nèi)容。


點贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學奧賽或C++選手的 必學C++課程

藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程

手把手講解近五年真題的藍橋杯輔導課程

Dotcpp在線編譯      (登錄可減少運行等待時間)