在Selenium Doc他们使用了^
,$
和*
之前的=
运算符,代码如下:但它们都不是解释了为什么这样的特殊符号
soup.select('a[href="http://example.com/elsie"]')
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
soup.select('a[href^="http://example.com/"]')
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
# <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
# <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
soup.select('a[href$="tillie"]')
# [<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
soup.select('a[href*=".com/el"]')
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
答案 0 :(得分:7)
那些是substring matching attribute selectors adapted from CSS 3:
=
仅在给定值与元素的属性值相等时匹配。^=
仅在给定值为元素属性值的前缀时才匹配。$=
仅在给定值为元素属性值的后缀时才匹配。*=
仅在元素的属性值中包含 的给定值时才匹配。在你的情况下:
a[href="http://example.com/elsie"]
选择a
属性值等于href
的任何http://example.com/elsie
元素。a[href^="http://example.com/"]
选择a
属性值以href
开头的任何http://example.com/
元素。a[href$="tillie"]
选择a
属性值以href
结尾的任何tillie
元素。a[href*=".com/el"]
选择a
属性值包含href
的任何.com/el
元素。答案 1 :(得分:3)
你看到的是CSS选择器: