scrapy相關

第一部分:xpath

一:基礎語法

1.表達式:node

nodename    # 節點名
/           # 若在起始位置,則代表從根節點選取node;若不在起始位置,代表選取子節點,本意都是選取所有子節點
//          # 從任意位置選取node節點
@           # 選取屬性
*           # 通配符
.            #當前節點複製代碼

2.謂語:bash

[n]                  # 第n個, -- eg:第一個[1]
[last()]             # 最後一個
[position()<n]       # 第n個位置以前的所有指定節點
node[@attr]          # 擁有attr屬性的節點
node[@attr='val']    # 屬性attr的值爲val的節點
node[contains(@class, 'val')]    # class屬性中包含val的節點複製代碼

二:軸

A/child::B ==> A/B         # 選取A節點的子節點B
parent                     # 父節點
descendant                 # 全部後代節點
ancestor                   # 全部先輩節點
descendant-or-self         # 全部後代元素及其自己
preceding-sibling          # 全部先輩節點及其自己
following-sibling          # 當前節點後面的同級節點
preceding                  # 整個文檔中,當前節點以前的全部節點
preceding-sibling          # 父節點中,當前節點以前的全部同級節點
following                  # 整個文檔中,當前節點以後的全部節點
self                       # 當前節點自己
attribute                  # 當前節點的全部屬性
namespace                  # 當前節點全部的命名空間複製代碼

三:運算符

|          # 並集
+          # 加法
-          # 減法
*          # 乘法
div        # 除法
=          # 等於
!=         # 不等於
<          # 小於
<=         # 小於
>          # 大於
>=         # 大於等於
or         # 或
and        # 與
mod        # 取餘複製代碼

四:示例

question      # 選取全部 question 元素的全部子節點
/question     #選取根元素 question
question/a    # 選取 question 元素下全部爲 a 的子元素
//div         # 選取全部的 div 元素,不論其出如今文檔的任何地方
question//div # 選取 question 元素下全部的 div 後代元素 (/ 選取的是直接子元素,這裏是全部的後代元素)
question//span/text() #選取 question 元素下全部 span 元素中的文本值
question//a/@href     #選取 question 元素下全部 a 元素中的 href 屬性值。 @ 後面能夠是任意屬性名,都可以取到值

/question/div[1]        # 選取 question 的第一個 div 子元素。 注意這裏第一個是從索引 1 開始的
/question/div[last()]   # 選取 question 第最後一個 div 子元素
/question/div[last()-1] # 選取 question 的倒數第二個 div 子元素
//div[@lang]            # 選取全部擁有lang 屬性的 div 元素
//div[@lang='eng']      # 選取全部 lang 屬性爲 eng 的 div 元素

/div/*    # 選取屬於 div 元素的全部子節點
//*       # 選取全部元素
//div/a | //div/p #選 取全部 div 元素的 a 元素或者 p 元素
//span | //input  # 選取文檔中全部的 span 和 input 元素複製代碼

五:補充

starts-with        #匹配一個屬性開始位置的關鍵字
eg: //input[starts-with(@name,'name1')]     #查找name屬性中開始位置包含'name1'關鍵字的頁面元素
contains           #匹配一個屬性值中包含的字符串
eg: //input[contains(@name,'na')]     #查找name屬性中包含na關鍵字的頁面元素
複製代碼


第二部分: 項目建立

1. spa

相關文章
相關標籤/搜索