bs4和xpath的用法


1.bs4的運用
流程:
1.導入相應的模塊:from bs4 import BeautifulSoup
2.實例化一個 BeautifulSoup 對象,並將我們要解析的數據加載到該對象中:soup = BeautifulSoup('要解析的數據','lxml(解析器)')
3.定位標簽:(1).通過標簽名定位:soup.標簽名 第一個標簽
(2).通過標簽名和屬性定位soup.find('標簽名',attr = {'屬性名':屬性值}) 返回的是查詢到的第一個標簽
soup.findAll('標簽名',attr = {'屬性名':屬性值}) 返回的一個由所有結果構成的列表
(3). 通過選擇器定位:select('selector')其中selector像css那樣的層級關系eg:('.card > h1 > a ')返回的也是一個列表
4.數據的提取:要注意的是findAll與select返回的都是列表,所有我們必須確定到要提取的某個標簽
(1)string:取出標簽直系的文本內容
. (2)text:取出標簽中所有的文本內容
(3)標簽名['屬性名']:獲取屬性的值
5.爬取一個小說實例:https://www.cnblogs.com/KingOfCattle/p/12907968.html

2.xpath的運用:
流程:
(1). 導入相應的模塊:from lxml import etree
(2).實例化etree對象,並將我們要解析的數據加載到該對象中:解析本地etree.parse('要解析的數據'),解析爬取的數據etree.HTML('要解析的數據')
(3).該對象結合xpath表達式進行提取數據,獲取的數據都存儲在列表里面了
xpath表達式: 1.表示一個層級,但是/在最左邊的時候表示從根標簽開始定位
2.//跳多個層級,最左邊的時候表示從任意地方開始定位
3.屬性定位://標簽名[@屬性名='屬性值']
4.索引定位://標簽名[index],index索引是從1開始
5.模糊定位模糊匹配:
//div[contains(@class, "ng")] 定位到class屬性值中包含ng的div標簽
//div[starts-with(@class, "ta")] 定位到class屬性值中是以ta開頭的div標簽
數據的提取:
/text() 獲取值系內容
//text() 獲取所有的內容
/@屬性名 獲取屬性值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM