爬蟲學習——網頁解析器Beautiful Soup

一.Beautiful Soup的安裝與測試html

官方網站:https://www.crummy.com/software/BeautifulSoup/node

  Beautiful Soup安裝與使用文檔:  https://www.crummy.com/software/BeautifulSoup/bs4/doc/python

1.首先測試一下bs4模塊是否已經存在,若不存在再安裝便可,我用的是kali測試發現bs4模塊已經存在,下面介紹如何測試與安裝正則表達式

新建python文檔輸入如下代碼測試

1 import bs4
2 print bs4

顯示一下結果即說明bs4模塊已經存在,其餘狀況則須要安裝網站

安裝代碼以下編碼

1 sudo apt-get  install python-pip2 
3 sudo pip install beautifulsoup4 

以後再進行測試便可spa

就會顯示出來這時就說明 Beautiful Soup3d

 

 安裝已經完成code

2、Beautiful Soup的語法

find_all:搜索出知足要求的全部節點

find:搜索出知足要求的第一個節點

兩者的參數是同樣的

2.按照節點名稱、屬性值、文字進行的搜索

 

3.建立Beautiful Soup對象相應的代碼

 1 from bs4 import BeautifulSoup
 2 
 3 #根據HTML網頁字符串建立BreautifulSoup對象
 4 soup = BeautifulSoup(
 5         html_doc,                          #HTML文檔字符串   
 6         'html.parser'                      #HTML解析器
 7         from_encoding='utf-8'         #HTML文檔的編碼
 8         )

4.搜索節點(find_all,find)

find_all(name節點名稱,attrs節點屬性,string節點文字)

 

 1 # 方法:find_all(name,attrs,string)
 2 
 3 #查找全部標籤爲a的節點
 4 soup.find_all('a')
 5 
 6 #查找全部標籤爲a,連接符合/view/123.html形式的節點
 7 soup.find_all('a',href='/view/123.html')
 8 soup.find_all('a',href=re.compile(r'/view/\d+\.htm'))    #bs中能夠在find方法中的名稱和屬性上使用正則表達式來匹配對應的內容
 9 
10 #查找全部標籤爲div,class爲abc,文字爲python的節點
11 soup.find_all('div',class_='abc',string='python')

 

5.獲得節點後訪問節點信息

 
 
 1 #假如獲得節點:<a href='1.html'>python</a> 2 3 #獲取查找到的a節點的href屬性 4 node.name 5 6 #獲取查找到的a節點的href屬性,以字典的形式訪問到a節點全部的屬性 7 node['href'] 8 9 #獲取查找到的a節點的連接文字
10 node.get_text()

經過以上建立bs4對象,搜索DOM樹,訪問節點的內容,就能夠實現對整個下載好的網頁

全部節點的解析和訪問。下一篇博文將給一個完整的示例代碼

相關文章
相關標籤/搜索