爬虫抓取的方式有 :
- 正则表达式
- lxml(xpath)
- BeautifulSoup
三种爬虫方式的对比:
抓取方式 | 性能 | 使用难度 |
---|---|---|
正则表达式 | 快 | 困难 |
lxml | 快 | 简单 |
BeautifulSoup | 慢 | 简单 |
Xpath的简单用法
from lxml import etree
s=etree.HTML(源码) #将源码转化为能被XPath匹配的格式
s.xpath(xpath表达式) #返回为一列表,
基础语法:
- // 双斜杠 定位根节点,会对全文进行扫描,在文档中选取所有符合条件的内容,以列表的形式返回。
- / 单斜杠 寻找当前标签路径的下一层路径标签或者对当前路标签内容进行操作
- /text() 获取当前路径下的文本内容
- /@xxxx 提取当前路径下标签的属性值
- | 可选符 使用|可选取若干个路径 如//p | //div 即在当前路径下选取所有符合条件的p标签和div标签。
- . 点 用来选取当前节点
- .. 双点 选取当前节点的父节点
浏览器复制的xpath只能作参考,因为浏览器经常会在自己里面增加多余的tbody标签,我们需要手动把这个标签删除