Python爬蟲——bs4、xpath基本語法

數據解析原理

  1. 標籤定位
  2. 提取標籤、標籤屬性中存儲的數據值

bs4數據解析的原理:

  1. 實例化一個BeautifulSoup對象,並且將頁面源碼數據加載到該對象中
  2. 通過調用BeautifulSoup對象中相關的屬性或者方法進行標籤定位和數據提取
環境安裝:
pip install bs4
pip install lxml
如何實例化BeautifulSoup對象:
from bs4 import BeautifulSoup

1.將本地的html文檔中的數據加載到該對象中

fp = open('./test.html','r',encoding='utf-8')
soup = BeautifulSoup(fp,'lxml')

2.將互聯網上獲取的頁面源碼加載到該對象中

page_text = response.text
soup = BeatifulSoup(page_text,'lxml')

提供的用於數據解析的方法和屬性:

  • soup.tagName:返回的是文檔中第一次出現的tagName對應的標籤

  • soup.find():

    find(‘tagName’):等同於soup.div

  • 屬性定位
    soup.find(‘div’,class_/id/attr=‘song’)
    soup.find_all(‘tagName’):返回符合要求的所有標籤(列表)

  • select:
    select(‘某種選擇器(id,class,標籤…選擇器)’),返回的是一個列表。

  • 層級選擇器:
    soup.select(’.tang > ul > li > a’):>表示的是一個層級
    oup.select(’.tang > ul a’):空格表示的多個層級

  • 獲取標籤之間的文本數據:
    soup.a.text/string/get_text()
    text/get_text():可以獲取某一個標籤中所有的文本內容
    string:只可以獲取該標籤下面直系的文本內容

  • 獲取標籤中屬性值:
    soup.a[‘href’]

xpath解析:最常用且最便捷高效的一種解析方式。

xpath解析原理:
  1. 實例化一個etree的對象,且需要將被解析的頁面源碼數據加載到該對象中。
  2. 調用etree對象中的xpath方法結合着xpath表達式實現標籤的定位和內容的捕獲。
環境的安裝:
 pip install lxml
如何實例化一個etree對象:
from lxml import etree
  1. 將本地的html文檔中的源碼數據加載到etree對象中:
etree.parse(filePath)
  1. 可以將從互聯網上獲取的源碼數據加載到該對象中
  etree.HTML('page_text')
xpath用法:
  • /:表示的是從根節點開始定位。表示的是一個層級。
  • //:表示的是多個層級。可以表示從任意位置開始定位。
  • 屬性定位://div[@class=‘song’] tag[@attrName=“attrValue”]
  • 索引定位://div[@class=“song”]/p[3] 索引是從1開始的。
  • 取文本:
    /text() 獲取的是標籤中直系的文本內容
    //text() 標籤中非直系的文本內容(所有的文本內容)
  • 取屬性:
    /@attrName
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章