xpath、BeautifulSoup、css_selector、Selector的关系

在学习爬虫的时候,尤其是页面解析的部分,经常会看到标题中的几个名词。在这里简述下它们之间的关系,如果有不对的地方,还请读者指出(如果有人看到的话)。

首先是xpath。xpath是用于在xml文档中搜索元素的路径语言。它是一种语言,在页面解析中,用它来表述要提取的元素的位置。那么怎么使用它呢?最基本的,python自带解析页面的lxml库,Selenium的webdriver,以及scrapy中的Selector在选取元素的时候,都会用到xpath表达式。举个例子,xpath就相当于正则表达式,而这些用它的这些工具就如同python中的re模块。

BeautifulSoup是一个python第三方库,专门用于解析页面。相比于lxml,BeautifulSoup简单容易上手,用法简单(不需要会xpath),但消耗的内存和时间都会比lxml多。BeautifulSoup最主要的两个方法是find_all(包括find)和select。find_all方法是最简单的,select则需要用到css_selector,即CSS选择器。

css_selector可以把它看作是类似xpath的一个东西,它也是一种位置描述语言,通过对标签和css类的描述确定位置。CSS选择器没有xpath应用的那么广,目前我见到的只有BeautifulSoup在用它(select方法)。

Selector则是爬虫框架scrapy中解析页面的一个模块,称之为选择器,可以利用xpath提取元素。不过其实scrapy中的repsonse对象可以直接用xpath提取元素。


最后,简而言之,xpath和css_selector是描述页面元素的语言,而BeautifulSoup和Selector则是解析页面的模块,可以使用前者来寻找页面中的元素。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值