Python爬虫(入门+进阶)学习笔记 2-3 Scrapy选择器的用法

当我们抓取网页时,最常见任务就是从HTML源码中提取数据,可是怎么提取数据呢?当然就是用选择器了。本节课主要介绍CSS,Xpath,正则表达式,pyquery四种选择器。

四大选择器

Scrapy 提取数据有自己的一套机制。它们被称作选择器(seletors),通过特定的 Xpath 、 CSS 表达式或者正则表达式来选择 HTML 文件中的某个部分的数据。

我们常用的选择器有四种:CSS选择器,Xpath选择器,正则表达式,pyquery选择器。Scrapy内置了三种选择器,分别是CSS选择器,Xpath选择器,正则表达式,使用pyquery需要另外安装pyquery库

CSS的使用方法

CSS 是一门将 HTML 文档样式化的语言。选择器由它定义,并与特定的 HTML 元素的样式相关联。在CSS中,选择器是一种模式,用于选择需要添加样式的元素

应用给定的CSS选择器时,返回 SelectorList 的一个实例,query 是一个包含CSS选择器的字符串 
该方法可以通过 response.css() 调用

CSS3选择器

CSS选择器使用示例:

我们使用一个自定义的网页源码演示css选择器的用法

html源码如下:

<body>
    <ul>

        <li class="top">
            <div>li的div</div>
        </li>

        <li class="top">
            <div>
            <div>li的div的div</div>div>
            </div>
        </li>

        <li>
        <p>li的p</p>    
        </li>

        <li>
        <a>
        <div id="li_a_div">li的a的div</divid>    
        </a>    
        </li>
    </ul>
</body>

打开同级目录下的HTML文件,所获取的sel变量是Selector变量,可以直接使用sel.css()对其进行选择:

from scrapy import Selector

with open('test.html' , encoding='utf-8') as f:
    text = f.read()

sel = Selector(text=text)

选择 class='top'的元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值