爬虫基础知识

一、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次
*? /+? /??匹配模式变为非贪婪(尽可能少匹配字符)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值