Xpath
- Xpath是一种针对结构化数据进行数据匹配的描述语言
- Xpath分析的目标数据:结构化数据~标记语言定义的数据[XML/HTML]
- 基本语法:针对加载的网页文档/xml文档,转换成文档书结构,在文档中根据基本语法在局部进行数据匹配的操作
基于index.html的查询操作
代码 | 作用 |
---|---|
html | 查询所有html的子节点 |
/html | 查询根节点下的html节点 |
/->根节点~文档对象模型~document
代码 | 作用 |
---|---|
//div | 模糊匹配路径,查询所有路径下出现的div节点 |
//div/* | *模糊匹配节点,查询所有路径下div的子节点 |
//div[@class] | 查询包含class属性的所有div节点 |
//div[@class="content"] | 查询包含class属性并且值为content的div节点 |
- //div-->对象中包含的文本数据
- xpath对象.xpath("string(.)")~查询到节点中所有的文本[包含子节点的文本]
- xpath对象.text~查询节点中的文本[不包含子节点中的文本]
- 实际操作
- 通过工具进行辅助,操作xpath进行数据的匹配
- 浏览器中的Xpath插件
- 谷歌浏览器~Xpath Helper-->可以很方便在网页中查询对应的数据
- 新版本Xpath插件中-->打开网页,打开Xpath插件,在网页中鼠标悬停在需要选中的文本上,按下shift按键,就会自动出现xpath描述的信息,然后根据自己的需要进行修改即可~!
- 谷歌浏览器~Xpath Helper-->可以很方便在网页中查询对应的数据
- python中怎么操作xpath
- python中默认没有xpath操作模块,但是有一个第三方模块lxml可以对结构化数据Xpath操作进行非常友好的支持
Beautifulsoup4
bs4是一种对性能的要求,时间的限制相对较弱的一种爬取方式.
bs4爬取数据
# 四种种安装方式
pip install beautifulsoup4
easy_install beautifulsoup4
# 下载tar.gz包 pip setup.py install
# 拷贝别人的bs4文件夹,知己复制到site-pakages/目录下即可
# 从程序中引入bs4
from bs4 import BeautifulSoup
# 从网页文件中直接加载
soup = BeautifulSoup(open("index.html"), "lxml")
print(soup)
三种爬取方式的对比
re | xpath | bs4 | |
---|---|---|---|
安装 | 内置 | 第三方 | 第三方 |
语法 | 正则 | 路径匹配 | 面向对象 |
使用 | 困难 | 较困难 | 简单 |
性能 | 最高 | 适中 | 最低 |
- ps: 以为爬虫程序,一般情况下对于数据处理性能问题,设计较少,所以对于爬虫采集数据,筛选数据并没有性能要求!(时间要求比较充裕)