1. xpath節(jié)點(diǎn)選擇
路徑表達(dá)式 | 含義 | 舉例 | 結(jié)果 |
---|---|---|---|
nodename | 選取此節(jié)點(diǎn)的所有子節(jié)點(diǎn) | div | 選取div的所有子節(jié)點(diǎn)。 |
/ | 從根節(jié)點(diǎn)開始選取琐馆,絕對(duì)路徑萝映。 | /div | 從根節(jié)點(diǎn)開始選取div舷丹。 |
// | 選取節(jié)點(diǎn)仗岖,而不考慮他們的位置,相對(duì)路徑惩系。 | //div | 選取div舵揭。 |
. | 選取當(dāng)前節(jié)點(diǎn) | 暫無 | 暫無。 |
.. | 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn) | 暫無 | 暫無校赤。 |
@ | 選取屬性 | @class | 選取名為class的所有屬性吆玖。 |
* | 匹配所有元素節(jié)點(diǎn) | 暫無 | 暫無。 |
實(shí)戰(zhàn)例子 | 結(jié)果 |
---|---|
/div/a[1] | 選取div子元素的第一個(gè)a元素 |
//li[@id] | 選取所有含id屬性的li元素 |
//li[@class="info"] | 選取所有含class=“info”的li元素 |
div//h2 | 選取屬于div元素的后代的所有h2元素 |
h2/text() | 選取所有h2元素里面的文本信息 |
string(.) | 選取某元素中含嵌套的所有文本內(nèi)容马篮,例如:html.xpath('//div')[0].xpath('string(.)')沾乘。另外,返回結(jié)果的格式不再是list浑测,而是'lxml.etree._ElementUnicodeResult'翅阵,可直接使用str類的操作歪玲,例如:sel.xpath('string(.)').strip()。 |
string(arg) | 選取指定arg中含嵌套的所有文本內(nèi)容掷匠,例如:html.xpath('string(//div)')滥崩。返回結(jié)果的格式同上。 |
//div[starts-with(@class,"article")] | 選取class屬性以article開頭的所有div元素 |
position() | 選取對(duì)應(yīng)位置的元素讹语。例如:html.xpath('//div[position()<=2]') |
last() | 選擇對(duì)應(yīng)位置的最后一個(gè)元素钙皮。例如:html.xpath('//div[last()]') |