Python-选择器Xpath,Css,Re

正则表达式(特殊字符)

^                            开头  '^b.*'----以b开头的任意字符
 
$                            结尾  '^b.*3$'----以b开头,3结尾的任意字符  
 
*                            任意长度(次数),≥0
 
?                            非贪婪模式,非贪婪模式尽可能少的匹配所搜索的字符串  '.*?(b.*?b).*'----从左至右第一个b和的二个b之间的内容(包含b)
 
+                            一次或多次
 
{2}                          指定出现次数2次
 
{2,}                         出现次数≥2次
 
{2,5}                        出现次数2≤x≤5
 
|                            或   “z|food”----能匹配“z”或“food”(此处请谨慎)。“[z|f]ood”----则匹配“zood”或“food”或"zood"
 
[]                           括号中任意一个符合即可(中括号里面没有分转义字符)  '[abc]ooby123'----只要开头符合[]中任意一个即可
 
[^]                          只要不出现[]的即可
 
[a-Z]                        从小a到大Z
 
.                            任意字符
 
\s                           匹配不可见字符 \n \t  '你\s好'----可以匹配‘你 好’
 
\S                           匹配可见字符,即普通字符
 
\w                           匹配下划线在内的任何单词字符
 
\W                           和上一个相反
 
[\u4E00-\u9FA5]              只能匹配汉字
()                           要取出的信息就用括号括起来
 
\d                           数字

  

Xpath

article                      选取所有article元素的所有子节点
 
/article                     选取根元素article
 
article/a                    选取所有属于article的子元素的a元素
 
//div                        选取所有div子元素(不论出现在文档任何地方)
 
article//div                 选取所有属于article元素的后代的div元素不管它出现在article之下的任何位置
 
//@class                     选取所有名为class的属性
 
/article/div[1]              选取属于srticle子元素的第一个div所有子节点
 
/article/div[last()]         选取属于article子元素的最后一个div所有子节点
 
/article/div[last()-1]       选取属于article子元素的倒数第二个div所有子节点
 
//div[@lang]                 选取所有拥有lang属性的div元素
 
//div[@lang='eng']           选取所有lang属性为eng的div元素
 
/div/*                       选取属于div元素的所有子节点
 
//*                          选取所有元素
 
//div[@*]                    选取所有带属性的div元素
 
//div/a | //div/p            选取所有div元素的a个p元素
 
//span | //ul                选取文档中的span和ul元素
 
article/div/p | //span       选取所有属于article元素的div元素和所有的span元素

  

Css

*                            选取所有节点
 
#container                   选取id为container的节点
 
.container                   选取所有class包含container的节点
 
li a                         选取所有li下的所有a节点
 
ul+p                         选取ul后面的第一个p元素
 
div#container > ul           选取id为container的div的第一个ul子元素
 
ul ~ p                       选取与ul相邻的所有p元素
 
a[title]                     选取所有有title属性的a元素
 
a[href="http://jobbole.com"] 选取所有href属性为jobbole.com
 
a[href*="jobole"]            选取所有href属性包含jobbole的a元素
 
a[href^="http"]              选取所有href属性值以http开头的a元素
 
a[href$=".jpg"]              选取所有href属性值以.jpg结尾的a元素
 
input[type=radio]:checked    选取选中的radio的元素
 
div:not(#container)          选取所有id非container的div元素
 
li:nth-child(3)              选取第三个li元素
 
tr:nth-child(2n)             第偶数个tr元素

  

^                            开头   '^b.*' - - - - 以b开头的任意字符
 
$                            结尾   '^b.*3$' - - - - 以b开头, 3 结尾的任意字符  
 
*                             任意长度(次数),≥ 0
 
?                            非贪婪模式,非贪婪模式尽可能少的匹配所搜索的字符串   '.*?(b.*?b).*' - - - - 从左至右第一个b和的二个b之间的内容(包含b)
 
+                             一次或多次
 
{ 2 }                          指定出现次数 2
 
{ 2 ,}                         出现次数≥ 2
 
{ 2 , 5 }                        出现次数 2 ≤x≤ 5
 
|                            或   “z|food” - - - - 能匹配“z”或“food”(此处请谨慎)。“[z|f]ood” - - - - 则匹配“zood”或“food”或 "zood"
 
[]                           括号中任意一个符合即可(中括号里面没有分转义字符)   '[abc]ooby123' - - - - 只要开头符合[]中任意一个即可
 
[^]                          只要不出现[]的即可
 
[a - Z]                        从小a到大Z
 
.                            任意字符
 
\s                           匹配不可见字符 \n \t   '你\s好' - - - - 可以匹配‘你 好’
 
\S                           匹配可见字符,即普通字符
 
\w                           匹配下划线在内的任何单词字符
 
\W                           和上一个相反
 
[\u4E00 - \u9FA5]              只能匹配汉字
()                           要取出的信息就用括号括起来
 
\d                           数字

猜你喜欢

转载自www.cnblogs.com/du-jun/p/10274206.html