beautifulsoup是一種較為常用的解析庫,如果你覺得用正規表示式來解析網頁過於繁瑣,需要寫較長的 正規表示式,那麼beautifulsoup將是你的好選擇。
首先選擇方法主要分為標籤選擇和css選擇器選擇,可以根據個人喜好來選擇使用,當然我更喜歡css選擇。更便捷也更直接。
from bs4 omport beautifulsoup
soup=beautifulsoup(html,'lxml')
其中html為一段html**,用來作為解析物件,就是將html**轉化為beautifulsoup物件。
而lxml就是解析器,除了lxml,還有xml,html.parser,以及html5.lib。不過我更喜歡用lxml。
print(soup.prettify()) '''格式化補全後輸出'''
print(soup.p.attrs['name']) '''輸出p標籤的name屬性值'''
print(soup.p.string) '''輸出第乙個p標籤的內容』『』
print(soup.head.title.string) '''巢狀選擇'''
print(soup.p.contents) '''輸出子節點,輸出的是列表,如果用child,輸出的是乙個迭代器,需要用enumerate方法輸出'''
print(soup.p.descendants) '''輸出子孫節點'''
print(soup.p.parents) '''輸出父節點'''
print(soup.p.parents) '''輸出祖先節點'''
print(soup.p.siblings) '''輸出兄弟節點,除此以外,兄弟節點還可以用next和previous方法,可以通過 print(list(ennumerate(soup.p.previous)))這樣的列舉方法來輸出。
print
(soup.find_all(
'ul'))
'''輸出所有的ul標籤'''
print
(soup.find_all(id=
'list-1'
)'''輸出所有屬性為id='list-1'的標籤 注意,若為class屬性,需要鍵入class_ 因為class是關鍵字 '''
print
(soup.p.find_next_sibling())
print
(soup.p.find_next_siblings())
print
(soup.p.find_all_next())
'''返回節點後所有符合條件的節點'''
print
(soup.p.find_next())
'''返回乙個符合條件的節點'''
可以通過直接select()方法直接鍵入css屬性即可完成查詢。
print
(soup.select(
.panel .panel_heading)
)'''輸出class="panel"的標籤下class="panel_heading"的標籤,注意寫的時候中間有空格'''
print
(soup.select(
'ul li'))
'''輸出ul下的li標籤'''
print
(ul.attrs[
'id'])
'''輸出ul的id屬性值'''
print
(li.get_text())
'''輸出li的內容'''
beautifulsoup的基礎知識就是這些,如果想進一步的深入學習,可以檢視beautifulsoup的官方**,和檢視css手冊來進一步學習。 Python的BeautifulSoup庫的使用
python爬蟲的beautifulsoup庫的使用 以下為爬去985高校的例子 import requests from bs4 import beautifulsoup 從bs4中引入beautifulsoup庫 import re url r requests.get url soup bea...
(一)BeautifulSoup的安裝
確保必要的工作 已經安裝好python和pip 執行cmd,在命令列中輸入一下命令即可安裝成功。pip install beautifulsoup4 由於本人使用的是ubuntu,即主要講解的是ubuntu下的安裝,其實其他發行版本的安裝都是差不多的。安裝python 由於在ubuntu的發行版本中...
BeautifulSoup庫的使用
解析器 使用方法 優勢劣勢 python標準庫 beautifulsoup markup,html.parser python的內建標準庫 執行速度適中 文件容錯能力強 python 2.7.3 or 3.2.2 前的版本中文容錯能力差 lxml html 解析器 beautifulsoup mar...