Bootstrap

爬虫基础知识

一、xpath 语法

使用方式:

使用// 获取整个页面当中的元素,然后谢标签名,然后再写谓词进行提取,比如:

//title[@lang='en']

需要注意的知识点:

1、/和//的区别:/代表只获取子节点,//获取子孙节点;
2、container:有时候某个属性中包含了多个值,那么可以使用container函数,示例如下:

//title[contains(@lang.'en')]

3、谓词中下标是从1开始的,不是从0开始的

表达式描述实例结果
nodename选取此节点的所有字节点bookstore选取bookstore 下的所有子节点
/如果在最前面,代表从跟节点选取,否则选择某节点下的某个节点/bookstore选根元素下所有的/bookstore节点
//从全局节点中选择节点,随便在哪个位置//book从全局节点中找到所有的book节点
@选取某个节点的属性//book[@price]选取所有拥有price属性的book节点
@*匹配任意节点中的属性//book[@*]选取所有带有属性的book元素
*匹配任意节点/bookstore/*选取bookstore下的所有子元素
/bookstore/book[1]选取属于bookstore子元素的第一个book元素
/bookstore/book[last()]选取属于bookstore子元素的最后一个book元素
/title[@lang]选取所有拥有名为lang的属性的title元素
/title[@lang=‘eng’]选取所有title元素,且这些元素拥有值为eng的lang属性

二、正则表达式

字符匹配
.匹配任意字符(除了\n)
[ ]匹配中括号中的某一项
\d / \D匹配数字/非数字
\s / \S匹配空白/非空白字符
\w匹配a-z和A-Z以及数字和下划线
*匹配前一个字符0次或者无限次
+匹配前一个字符1次或者无限次
?匹配前一个字符0次或者1次
^匹配字符串开头
$匹配字符串结尾
\A/ \Z指定的字符串匹配必须出现在开头/结尾
{m}/{m,n}匹配前一个字符m次或者n次
*? /+? /??匹配模式变为非贪婪(尽可能少匹配字符)

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;