python爬蟲資料解析之bs4

2021-10-08 03:50:17 字數 1282 閱讀 8509

步驟:

1、匯入bs4庫

from bs4 import beautifulsoup
2、獲取soup物件

#html為你獲取的網頁源**,將html轉化為特定的格式lxml

#為後面提取資訊做準備

soup=beautifulsoup(html,'lxml'

)

3、利用方法選擇器解析

find_all()##查詢所有符合條件的節點資訊,例如soup.find_all(name=「h4」),查詢所有節點名稱為h4的節點資訊

for ul in soup.find_all(name=

"ul"

):#尋找名為ul的結點

print(ul)

for li in ul.find_all(name=

"li"

):#尋找ul結點下名為li的結點

print(li.string)

細節:find_all()方法中可以結合多個條件進行結點的尋找,例如可以尋找名為div的結點下class為contson的結點,當尋找準確的class結點資訊時,要用class_="",不然會報錯。

例子:

for content in word.find_all(name=

"div",class_=

'contson'

):

4、利用css選擇器進行解析(更快速)

思想:利用css中的結點層級關係準確找到某種資訊的位置,select()方法,div>ul>li意思是尋找層級div下的ul下的li的內容

例子:

for li in soup.select(

"ul>li"

): print(li.text)

關係:可以利用css選擇器中的select()和方法選擇器中的find_all()搭配使用,使得資料提取更加簡單

例如:

#獲取div下的div下的div下的div層的資訊

for word in soup.select(

"div>div>div>div"

): #獲取word中結點名為b的文字資訊

for title in word.find_all(name=

'b'):

python爬蟲bs4 xpath資料解析

在爬取網頁後,通常需要將爬取到的內容進行分割提取,拿到我們想要的文字內容或者相應的位址url。安裝bs4模組,並匯入 from bs4 import beautifulsoupfp open test.html r encoding utf 8 將本地的html文件中的資料記載到該物件中 soup ...

爬蟲 資料解析 bs4

正規表示式實現資料解析 需求 爬取糗事百科中糗圖資料 import requests headers 方式1 url img data requests.get url url,headers headers content content返回的是byte型別的資料 方式2 方式2不可以使用ua偽裝...

python爬蟲學習(十)bs4解析資料

lxml安裝是個坑 coding utf 8 import lxml import requests from bs4 import beautifulsoup if name main ua偽裝 將對應的user agent封裝到字典中 headers url 對指定url發起請求,對應的url是...