主页 >> 程序猿的东西 >> scrapy爬虫教程摘要(四)——xpath vs css选择器

scrapy爬虫教程摘要(四)——xpath vs css选择器

scrapy提供了两种选择器css和xpath,这两种选择器各有长处,下面分别介绍。

CSS选择器

菜鸟教程>>

优点:主要用于CSS样式表指定html元素,语法简洁强大,上手学习更容易,因此所有前端工具中都提供了支持。在scrapy也支持CSS选择器语法作为爬虫的元素选择器。大部分CSS选择器都是直接用class和id来定位,不用考虑元素的严格的层级关系,因此语法上比xpath更简洁,使用面也更广一点。

缺点:功能相对简单(但是也能满足99%的需求了),无法选择父级。比如下面例子,我要选择arraw-right上一层的那个a标签,用CSS选择器就无法实现。

<ul class="pagination">
    <li class="page-item">
        <a class="page-link" href="/previous">
            <i class="fa arrow-left"></i>
        </a>
    </li>
    <li class="page-item">
        <a class="page-link" href="/next">
            <i class="fa arrow-right"></i>
        </a>
    </li>
</ul>

xpath

菜鸟教程>>

优点:CSS选择器实现的功能这里全部支持。而且可以支持更复杂的选择功能,比如向上选择父级。上面例子,我要选择arraw-right上一层的a标签我可以像下面这样干:

//i[contains(@class,"arrow-right")]/..

末尾两个点就表示父级。

据我所知,爬虫领域,用xpath的还是多一点。所以有志于爬虫领域深挖的同学,一定要掌握xpath。

缺点:语法更加复杂,同样功能。用xpath选择比CSS选择要长很多。我们看看两种工具的菜鸟教程就知道,CSS选择器只是CSS教程里面的一页,而xpath是一整套教程。。。

发表评论