-
lxml下載
-
xpath基本用法
-
xpath插件
Xpath及XML路徑語言,它是一門在XML文檔查找信息的語言。
首先需要解決lxml的安裝問題,在Windows下我們可以嘗試使用pip install lxml 下載,如果沒有任何報錯的,恭喜安裝成功,下面可以進行騷操作了;如果出現報錯,出現的提示出現libxml2庫等信息,可以采用wheel安裝。
wheel的安裝方法:推薦去 http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml下載對應的lxml文件,切換到下載文件的目錄下,進入cmd,pip install {文件名}.wheel進行安裝。
二:xpath的使用方法
介紹一下xpath的常用規則:
表達式 | 描述 | 示例 | 結果 |
---|---|---|---|
nodename | 選取此節點的所有子節點 | xbhog | 選取xbhog下所有的子節點 |
/ | 如果是在最前面,代表從根節點選取。否則選擇某節點下的某個節點 | /xbhog | 選取根元素下所有的xbhog節點 |
// | 從全局節點中選擇節點,隨便在哪個位置 | //xbhog | 從全局節點中找到所有的xbhog節點 |
@ | 選取某個節點的屬性 | //xbhog[@price] | 選擇所有擁有price屬性的xbhog節點 |
. | 當前節點 | ./a | 選取當前節點下的a標簽 |
路徑表達式 | 描述 |
---|---|
/bookstore/book[1] | 選取bookstore下的第一個子元素 |
/bookstore/book[last()] | 選取bookstore下的倒數第二個book元素。 |
bookstore/book[position()<3] | 選取bookstore下前面兩個子元素。 |
//book[@price] | 選取擁有price屬性的book元素 |
//book[@price=10] | 選取所有屬性price等於10的book元素 |
這些基本規則基本上滿足日常需求了,如果還有其他問題,百度是個好東西你值得擁有。
下面舉個例子實戰一下:
下面是我博客的內容,我們需要做的就是爬取這一頁的標題內容:[兩個數組的交集.......],想一下!
我們先打開開發者模式,找到標題所在的網頁源代碼:
我們從最里面一步一步往外推,<a>
--> <h4>
--> <div class="article-item-box csdn-tracking-statistics">
--><div class="article-list">
<div class="article-list"> 是 <h4> 標簽的父節點
<div class="article-list"> 是 <a> 標簽的孫節點
<h4> 是 <a> 標簽的父節點
所以我們可以參照上面的常用規則寫出://div[@class='article-list']//h4表達式,我們看到下圖中的標題都已經選中了,這就證明我們寫的表達式正確。
三:插件介紹
有人會發現我圖片中出現黑色的框,這是谷歌的一個插件(xpath helper), 在chrome瀏覽器安裝好xpath helper插件后(科學訪問,人人有責), 點擊 Ctrl + Shift + X 激活 XPath Helper 的控制台,然后您可以在 Query 文本框中輸入相應 XPath 進行調試了,提取的結果將被顯示在旁邊的 Result 文本框中,可以實時檢測自己的表達式是否正確。
最后有個小補充,如果你不想寫xpath語法,你還可以F12,選中你想要的信息右擊,copy--copy xpath,缺點是沒有手寫的簡潔,copy的比較繁瑣,不利於閱讀。
爬蟲系列----未完待續.......