本文作者官網 白月黑羽教python
css selector的另乙個強大之處在於: 選擇語法 可以聯合使用
開啟這個**
發布日期:2018-03-03
css selector 表示式 可以這樣寫:
也可以更簡單:
當然 這樣也是可以的:
因為子元素同時也是後代元素
如果我們要 同時選擇所有class 為 plant和
class 為 animal 的元素。怎麼辦?
這種情況,css選擇器可以 使用逗號
,稱之為 組選擇 ,像這樣
.plant , .animal
再比如,我們要同時選擇所有tag名為div的元素和
id為byhy的元素,就可以像這樣寫
div,#byhy
對應的selenium**如下
elements = wd.find_elements_by_css_selector('div,#byhy')
for element in elements:
print(element.text)
我們再看乙個例子
開啟這個** 開啟這個**
我們要選擇所有 唐詩裡面的作者和詩名, 也就是選擇所有 id 為 t1 裡面的span 和 p 元素
我們是不是應該這樣寫呢?
#t1 > span,p
不行哦,這樣寫的意思是 選擇所有id 為 t1 裡面的 span
和所有的 p 元素
只能這樣寫
#t1 > span , #t1 > p
開啟這個**
對應的html如下,關鍵資訊如下
李白
靜夜思杜甫
春夜喜雨
蘇軾赤壁懷古
明月幾時有
江城子·乙卯正月二十日夜記夢
蝶戀花·春景
辛棄疾京口北固亭懷古
青玉案·元夕
西江月·夜行黃沙道中
我們可以指定選擇的元素是父元素的第幾個子節點
使用nth-child
比如,我們要選擇 唐詩 和宋詞 的第乙個 作者,
也就是說 選擇的是 第2個子元素,並且是span型別
所以這樣可以這樣寫span:nth-child(2)
,
如果你不加節點型別限制,直接這樣寫:nth-child(2)
就是選擇所有位置為第2個的所有元素,不管是什麼型別
也可以反過來, 選擇的是父元素的倒數第幾個子節點
,使用nth-last-child
比如:
p:nth-last-child(1)
就是選擇第倒數第1個子元素,並且是p元素
我們可以指定選擇的元素 是父元素的第幾個某型別的
子節點
使用nth-of-type
比如,我們要選擇 唐詩 和宋詞 的第乙個 作者,
可以像上面那樣思考:選擇的是 第2個子元素,並且是span型別
所以這樣可以這樣寫span:nth-child(2)
,
還可以這樣思考,選擇的是第1個span型別
的子元素
所以也可以這樣寫span:nth-of-type(1)
當然也可以反過來, 選擇父元素的倒數第幾個某型別
的子節點
使用nth-last-of-type
像這樣
p:nth-last-of-type(2)
如果要選擇的是父元素的偶數節點
,使用nth-child(even)
比如
p:nth-child(even)
如果要選擇的是父元素的奇數節點
,使用nth-child(odd)
p:nth-child(odd)
如果要選擇的是父元素的某型別偶數節點
,使用nth-of-type(even)
如果要選擇的是父元素的某型別奇數節點
,使用nth-of-type(odd)
上面的例子裡面,我們要選擇 唐詩 和宋詞 的第乙個 作者
還有一種思考方法,就是選擇 h3後面緊跟著的兄弟節點
span。
這就是一種 相鄰兄弟 關係,可以這樣寫h3 + span
表示元素 緊跟關係的 是加號
如果要選擇是 選擇 h3後面所有的兄弟節點
span,可以這樣寫h3 ~ span
更多css選擇器的介紹,可以參考css 選擇器參考手冊
表示式 使用API建立表示式樹(5)
一 conditionalexpression 表示式 生成如 iif a b a和b相等 a與b不相等 式子。使用 parameterexpression aip1 expression.parameter typeof int a 1 parameterexpression aip2 expre...
第5章 表示式
不想從第一章開始看起,看目錄覺得對第五章中的bitset和sizeof有點興趣,嗯,研究一下。1 if ival ival作為乙個條件表示式,非0時,if條件成立。表示式結果是右值,可讀取結果,不能對它進行賦值。2 短路求值 邏輯與和邏輯或總先計算左運算元。且只在左運算元無法確定結果時,才會求解右運...
5 表示式求值(1)
成績 10開啟時間 2018年10月10日 星期三 20 00 折扣0.8 折扣時間 2018年11月1日 星期四 23 55 允許遲交 否關閉時間 2018年11月11日 星期日 23 55 我們的教材中已經介紹了表示式求值的演算法,現在我們將該演算法的功能進行擴充套件,要求可以處理的運算子包括 ...