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