1.什么是XPath,?xpath是一門在XML和HTML文檔中查找信息的語(yǔ)言,可用來(lái)在XML和HTML文檔中對(duì)元素和屬性進(jìn)行遍歷,,XPath 通過(guò)使用路徑表達(dá)式來(lái)選取 XML 文檔中的節(jié)點(diǎn)或者節(jié)點(diǎn)集,。這些路徑表達(dá)式和在常規(guī)的電腦文件系統(tǒng)中看到的表達(dá)式非常相似。 2.XPath語(yǔ)法想要學(xué)好xpath,,首先要搞明白html文檔中的節(jié)點(diǎn),。
以上是在網(wǎng)上隨便找的一段html的文本,可以觀察得到,,div的標(biāo)簽下是ul標(biāo)簽,,而ul標(biāo)簽下是li標(biāo)簽,于是發(fā)現(xiàn)html的標(biāo)簽是一級(jí)一級(jí)如樹狀的,。Xpath正是通過(guò)這樣的方式去尋找,。以生活中舉例,要確定一個(gè)人的位置,,首先確定他在中國(guó),,然后確定他在某個(gè)省份,,哪座城市,那個(gè)小區(qū),,最后找到他,。
3.lxml庫(kù)簡(jiǎn)單介紹一下lxml庫(kù),接下來(lái)會(huì)用到它 lxml是一個(gè)HTML/XML的解析器,,主要的功能是如何解析和提取HTML/XML 數(shù)據(jù),。 lxml和正則一樣,,也是用C實(shí)現(xiàn)的,,是一款高性能的PythonHTML/XML解析器,可以利用之前學(xué)習(xí)的XPath語(yǔ)法,,來(lái)快速的定位特定元素以及節(jié)點(diǎn)信息,。 4.實(shí)際案例隨便爬取一個(gè)網(wǎng)站,找到找到網(wǎng)站的html文本,,如下圖
要找到title和href,,仔細(xì)觀察可以得到路徑分別是//div[@id="resultList"]/div[@class="el"]/p/span/a/@title //div[@id="resultList"]/div[@class="el"]/p/span/a/@href 運(yùn)行如下:
5.總結(jié)Xpath,是在爬蟲中常見的提取數(shù)據(jù)的方式之一,,相比于正則,,它更加簡(jiǎn)單一些,便于操作,,xpath的難點(diǎn)在于準(zhǔn)確的確定數(shù)據(jù)所在的位置,。 |
|