Scrapy下xpath基本的使用方法


  Scrapy是基於python的開源爬蟲框架,使用起來也比較方便。具體的官網檔:http://doc.scrapy.org/en/latest/

  之前以為了解python就可以直接爬網站了,原來還要了解HTML,XML的基本協議,在了解基礎以后,在了解下xpath的基礎上,再使用正則表達式(python下的re包提供支持)提取一定格式的信息(比如說url),就比較容易處理網頁了。

  xpath是Scrapy下快速提取特定信息(如title,head,href等)的一個接口。

  

  幾個簡單的例子:

  /html/head/title: 選擇HTML文檔<head>元素下面的<title> 標簽。
  /html/head/title/text(): 選擇前面提到的<title> 元素下面的文本內容
  //td: 選擇所有 <td> 元素
  //div[@class="mine"]: 選擇所有包含 class="mine" 屬性的div 標簽元素

 

  基本的路徑意義:

  

表達式 描述
nodename 選取此節點的所有子節點。
/ 從根節點選取。
// 從匹配選擇的當前節點選擇文檔中的節點,而不考慮它們的位置。
. 選取當前節點。
.. 選取當前節點的父節點。
@ 選取屬性。

  

 

  具體的使用實例:

  比如對http://www.dmoz.org/Computers/Programming/Languages/Python/Books/ 網站提取特定的信息

  1)、先在第一層tutorial文件夾下,在cmd中輸入: scrapy shell http://www.dmoz.org/Computers/Programming/Languages/Python/Books/  

  2)、現在比如我們需要抓取該網頁的tittle,由於前面的shell命令已經實例化了一個selector的對象sel, 就輸入 sel.xpath('//title') 獲取了網頁的標題。

  3)、比如我們想要知道該網頁下的www.****.com形式的鏈接,可以使用xpath 結合正則表達式re提取信息,輸入   sel.xpath('//@href').re("www.[0-9a-zA-Z]+\.com")

  

 

部分參考:http://blog.csdn.net/pleasecallmewhy/article/details/19642329

正則表達式參考:http://blog.csdn.net/pleasecallmewhy/article/details/8929576


免責聲明!

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



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