爬虫学习笔记(七)——Scrapy框架(二):Scrapy shell、选择器

一、Scrapy shell

scrapy shell的作用是用于调试,在项目目录下输入scrapy shell start_urls (start_urls:目标url)得到下列信息:

scrapy shell 会自动加载settings里的配置,即robots协议,请求头等都可以加载,从而发起请求可以得到正确的响应信息。

[s] Available Scrapy objects:
[s]   scrapy     scrapy module (contains scrapy.Request, scrapy.Selector, etc)  #scrapy  模块
[s]   crawler    <scrapy.crawler.Crawler object at 0x000002624C415F98>  #爬虫对象
[s]   item       {
   }                                                    #item对象
[s]   request    <GET https://movie.douban.com/top250>                 # 请求对象
[s]   response   <200 https://movie.douban.com/top250>                  #响应对象
[s]   settings   <scrapy.settings.Settings object at 0x000002624C415EB8>  #配置文件
[s]   spider     <DefaultSpider 'default' at 0x2624c8ed3c8>               #spider文件
[s] Useful shortcuts:
[s]   fetch(url[, redirect=True]) Fetch URL and update local objects (by default, redirects are followed)  #通过url  获取response
[s]   fetch(req)                  Fetch a scrapy.Request and update local objects  #通过请求对象  获取response
[s]   shelp()           Shell help (print this help)    #列出命令
[s]   view(response)    View response in a browser     #response  界面    本地浏览器环境下使用

Scrapy shell 本质上就是个普通的python shell
只不过提供了一些需要使用的对象,快捷方法便于我们调试。

  • 快捷方法:
    shelp()
    fetch(url[,redirect=True])
    fetch(request)
    view(response)
  • scrapy 对象:
    crawler
    spider
    request
    response
    setting

二、Scrapy 选择器

  • Scrapy提供基于lxml库的解析机制,它们被称为选择器。
    因为,它们“选择”由XPath或CSS表达式指定的HTML文档的某部分。
    Scarpy选择器的API非常小,且非常简单。

  • 选择器提供2个方法来提取标签
    xpath() 基于xpath的语法规则
    css() 基于css选择器的语法规则

    快捷方式
    response.xpath()
    response.css()
    它们返回的选择器列表

    提取文本:
    selector.extract() 返回文本列表
    selector.extract_first() 返回第一个selector的文本,没有返回None

  • 嵌套选择器
    ①有时候我们获取标签需要多次调用选择方法(.xpath().css()
    例如:response.css(‘img’).xpath(’@src’)
    ②Selector还有一个.re()方法使用正则表达式提取数据的方法。它返回字符串。它一般使用在xpath(),css()方法之后,用来过滤文本数据。
    re_first()用来返回第一个匹配的字符串。

示例:

html_str="""
<div class="info">
    <div class="hd">
        <a href="https://movie.douban.com/subject/1292052/" class="">
            <span class="title">肖申克的救赎</span>
            <span class="title">&nbsp;/&nbsp;The Shawshank Redemption</span>
            <span class="other">&nbsp;/&nbsp;月黑高飞(港)  /  刺激1995(台)</span>
        </a>
            <span class="playable">[可播放]</span>
    </div>
    <div class="bd">
        <p class="">
            导演: 弗兰克·德拉邦特 Frank Darabont&nbsp;&nbsp;&nbsp;主演: 蒂姆·罗宾斯 Tim Robbins /...<br>
            1994&nbsp;/&nbsp;美国&nbsp;/&nbsp;犯罪 剧情
        </p>
        <div class="star">
                <span class="rating5-t"></span>
                <span class="rating_num" property="v:average">9.7</span>
                <span property="v:best" content="10.0"></span>
                <span>1980500人评价</span>
        </div>

            <p class="quote">
                <span class="inq">希望让人自由。</span>
            </p>
    </div>
</div>
</div>
"""
from scrapy.selector import Selector
#1.通过text 参数来构造对象
select 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值