Scrapy基本概念——Scrapy shell

news2024/11/26 4:36:24

Scrapy shell是一个交互式shell,可以在不运行Spider的情况下,测试和调试自己的数据提取代码。事实上,Scrapy shell可以测试任何类型的代码,因为它本就是一个常规的Python shell。

一、Scrapy shell的使用

1、启动Scrapy shell

scrapy shell 'https://scrapy.org' --nolog

2、使用实例和函数调试

1、使用response实例提取数据

>>> response.xpath('//title/text()').get()
'Scrapy | A Fast and Powerful Scraping and Web Crawling Framework'

2、使用fetch()函数获取响应

>>> fetch("https://old.reddit.com/")

3、使用response实例提取数据

>>> response.xpath('//title/text()').get()
'reddit: the front page of the internet'

4、使用request实例修改请求方式

>>> request = request.replace(method="POST")

5、使用fetch()函数获取响应

>>> fetch(request)

6、使用response实例查看响应状态

>>> response.status
404

7、使用response实例打印响应头信息

>>> from pprint import pprint
>>> pprint(response.headers)
{'Accept-Ranges': ['bytes'],
 'Cache-Control': ['max-age=0, must-revalidate'],
 'Content-Type': ['text/html; charset=UTF-8'],
 'Date': ['Thu, 08 Dec 2016 16:21:19 GMT'],
 'Server': ['snooserv'],
 'Set-Cookie': ['loid=KqNLou0V9SKMX4qb4n; Domain=reddit.com; Max-Age=63071999; Path=/; expires=Sat, 08-Dec-2018 16:21:19 GMT; secure', 'loidcreated=2016-12-08T16%3A21%3A19.445Z; Domain=reddit.com; Max-Age=63071999; Path=/; expires=Sat, 08-Dec-2018 16:21:19 GMT; secure', 'loid=vi0ZVe4NkxNWdlH7r7; Domain=reddit.com; Max-Age=63071999; Path=/; expires=Sat, 08-Dec-2018 16:21:19 GMT; secure','loidcreated=2016-12-08T16%3A21%3A19.459Z; Domain=reddit.com; Max-Age=63071999; Path=/; expires=Sat, 08-Dec-2018 16:21:19 GMT; secure'],
 'Vary': ['accept-encoding'],
 'Via': ['1.1 varnish'],
 'X-Cache': ['MISS'],
 'X-Cache-Hits': ['0'],
 'X-Content-Type-Options': ['nosniff'],
 'X-Frame-Options': ['SAMEORIGIN'],
 'X-Moose': ['majestic'],
 'X-Served-By': ['cache-cdg8730-CDG'],
 'X-Timer': ['S1481214079.394283,VS0,VE159'],
 'X-Ua-Compatible': ['IE=edge'],
 'X-Xss-Protection': ['1; mode=block']}

二、Scrapy shell可用的实例和函数

[s] Available Scrapy objects:
[s]   scrapy     scrapy module (contains scrapy.Request, scrapy.Selector, etc)
[s]   crawler    <scrapy.crawler.Crawler object at 0x7f07395dd690>
[s]   item       {}
[s]   request    <GET https://scrapy.org>
[s]   response   <200 https://scrapy.org/>
[s]   settings   <scrapy.settings.Settings object at 0x7f07395dd710>
[s]   spider     <DefaultSpider 'default' at 0x7f0735891690>
[s] Useful shortcuts:
[s]   fetch(url[, redirect=True]) Fetch URL and update local objects (by default, redirects are followed)
[s]   fetch(req)                  Fetch a scrapy.Request and update local objects
[s]   shelp()           Shell help (print this help)
[s]   view(response)    View response in a browser

三、在Spider中调用shell来检查响应

Spider代码中可以通过scrapy.shell.inspect_response调用shell

import scrapy
class MySpider(scrapy.Spider):
    name = "myspider"
    start_urls = [
        "http://example.com",
        "http://example.org",
        "http://example.net",
    ]


    def parse(self, response):
        # We want to inspect one specific response.
        if ".org" in response.url:
            from scrapy.shell import inspect_response
            inspect_response(response, self)

        # Rest of parsing code.

在执行Spider代码时,会自动启动Scrapy shell,如

2014-01-23 17:48:31-0400 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://example.com> (referer: None)
2014-01-23 17:48:31-0400 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://example.org> (referer: None)
[s] Available Scrapy objects:
[s]   crawler    <scrapy.crawler.Crawler object at 0x1e16b50>
...

>>> response.url
'http://example.org'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/42716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【iMessage苹果家庭】共享推软件设备安装创作AppleScript增加了iMessage群应用会得到一个硬件token

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

计算机图形学-算法总结

文章目录计算机图形学-算法总结一、直线转换1、DDA算法2、中点法3、Bresenhan算法二、圆1、中点Bresenham画圆算法2、椭圆的中点Bresenham算法计算机图形学-算法总结 一、直线转换 1、DDA算法 Δyyn−y0Δxxn−x0ε1max(∣Δx∣,∣Δy∣)\Delta yy_n-y_0 \\ \Delta xx_n-x_0\…

小杨哥陷入打假风波,会变成下一个辛巴吗?

最近&#xff0c;网红疯狂小杨哥频繁登上热搜。最初的起因是他花了1亿元在合肥一家高科技公司购买了5万多平方米的房产&#xff0c;作为他名下公司的全球总部&#xff0c;由此带来了争议。 据了解&#xff0c;该物业总建筑面积为53874.33平方米&#xff0c;包括1个生产综合体、…

一步一步带你深入源码看Spring是如何加载XML配置文件的

Spring 的在实际开发过程中都是以XML 配置文件注解的形式进行使用,那么XML配置文件的读取是Spring中重要的功能, 在Spring中,加载XML配置文件的语句如下: 使用ClassPathXmlApplicationContext类的构造函数加载XML配置文件,代码如下: ClassPathXmlApplicationContext()方法调…

蓝桥杯控制PCF8591

目录 一、AD转换 &#xff08;1&#xff09;PCF8591初始化 &#xff08;2&#xff09;获取PCF8591ADC转换结果 &#xff08;3&#xff09;实例程序​编辑 二、DA转换 &#xff08;1&#xff09;PCF8591初始化 &#xff08;2&#xff09;写入数模转换的值 &#xff08;3&am…

一个快速切换浏览器搜索引擎的小技巧(在地址栏搜索B站、书签等的方法)

一、背景 Chrome谷歌浏览器的地址栏是可以搜索的&#xff0c;我们怎么能临时切换到别的搜索引擎呢&#xff1f;&#xff08;注意不是改地址栏默认的搜索引擎&#xff09; 改搜索引擎&#xff1a;谷歌浏览器默认谷歌搜索引擎&#xff0c;很多人估计都会改成百度。我虽然能用谷歌…

四、nginx负载均衡[轮询]

一、负载均衡 解释&#xff1a;负载均衡分为两部分&#xff08;应用集群和负载均衡器&#xff09;。应用集群&#xff1a;将同一应用部署到多台机器上&#xff0c;组成处理集群&#xff0c;接收负载均衡设备分发的请求&#xff0c;进行处理并返回响应的数据。负载均衡器:将用户…

C语言库函数— qsort () 详解

目录 1. qsort()函数简介 1.1 函数原型 1.2 函数参数 2. 比较函数简介 2. 1 比较函数参数 2.2 比较函数使用 3. qsort()函数使用 3.1 整形数组排序 3.2 字符数组排序 3.3 浮点型数组排序&#xff08;double类型为例&#xff09; 3. 4 字符串数组排序 3.5 结构体…

Spring Security(十八)--OAuth2:实现授权服务器(上)--环境准备以及骨架代码搭建

一、前言 本节大家如果一直从一开始看过来的话&#xff0c;就会巧妙发现我们将之前的实践代码全部连接起来&#xff0c;本节将会使用到之前的短信/验证码登录相关的逻辑代码&#xff0c;如果大家没有看的感兴趣可以回到https://editor.csdn.net/md/?articleId127617691先将这…

【pdf翻译中文】免费自用日语pdf转中文、韩语pdf转中文(也可以转英文)或者其他小语种法语、德语pdf转中文

不是很精确、有点慢&#xff0c;但是也够用&#xff0c;胜在免费free 效果图&#xff1a; 一些对比&#xff1a; 模型来自于&#xff1a; https://huggingface.co/models 文件目录 调用模型的代码&#xff1a; 运行此段代码&#xff0c;执行翻译 一些简单的设置在这里…

【LeetCode每日一题】——557.反转字符串中的单词 III

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 字符串 二【题目难度】 简单 三【题目编号】 557.反转字符串中的单词 III 四【题目描述】 给…

DPU1.1S—高性能、低功耗4口高速USB2.0HUB控制器芯片

DPU1.1S是一款高性能、低功耗4口高速 USB2.0 HUB 控制器&#xff0c;上行端口兼容高速 480MHz和全速12MHz两种模式&#xff0c;4个下行端口兼容高速480MHz、全速12MHz、低速1.5MHz三种模式。 DPU1.1S采用状态机单事务处理架构&#xff0c;而非单片机架构&#xff0c;多个事务缓…

沃通CA证书支持多所高校招投标文件电子签名

招投标电子化是国家大力推行的战略性工作&#xff0c;为贯彻落实电子招投标工作&#xff0c;各政企单位、高校均启动采购与招投标系统&#xff0c;自行组织的招标、单一来源等采购活动都通过该类系统在线进行。近期&#xff0c;沃通CA证书打通与多所高校采购与招投标系统的应用…

C语言深度解析:函数的形参和实参与传值和传址(多角度分析,让你有一种相见恨晚的感觉!!!!)

目录 一、前言 二、函数的形参和实参 &#x1f351;实参 &#x1f34e;形参 &#x1f347;形参与实参之间的区别 &#x1f350;形参与实参之间的联系&#xff08;重点&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 三、函数的传值和传址&#xff08;超…

[附源码]计算机毕业设计JAVA网上宠物商店

[附源码]计算机毕业设计JAVA网上宠物商店 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis M…

【html5期末大作业】基于HTML仿QQ音乐官网网站

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Xcode 中设置APP的图标(Icon)和启动页面(Launch Screen)

设置图标&#xff08;Icon&#xff09; 首先&#xff0c;要准备4组图标&#xff08;如果是发布在 iOS 平台上&#xff09;&#xff0c;这4组分别是 120 x 120 px&#xff0c;152 x 152 px&#xff0c;167 x 167 px&#xff0c;1024 x 1024 px 的尺寸&#xff0c;要 PNG 格式。…

使用EL表达式时,PropertyNotFoundException异常的解决过程

一. 业务场景 最近&#xff0c;杨哥的一个班级正在做基于JSPJSTL/EL Servlet JavaBean JDBC MySQL技术方案的阶段项目。其中有一个需求是根据多条件动态搜索商品信息&#xff0c;最终分页显示出商品列表。这个功能可以在dao层采用多分支条件组合&#xff0c;显示页面使用JST…

2022王道OS 1.3 操作系统运行环境

2022王道OS 1.3 操作系统运行环境 文章目录2022王道OS 1.3 操作系统运行环境1.3_1 操作系统的运行机制知识总览知识点预备知识&#xff1a;程序是如何运行的&#xff1f;两种程序&#xff1a;内核程序 VS 应用程序两种指令&#xff1a;特权指令 VS 非特权指令两种状态&#xff…

二、【React脚手架】组件化编码(TodoList案例)

文章目录1、组件化编码流程&#xff08;通用&#xff09;2、样式覆盖问题3、DEMO3.1、需要实现的效果3.2、前期须知3.3、项目结构3.4、CODE3.4.1、App.js3.4.2、App.css3.4.3、Header3.4.4、List3.4.5、Item3.4.6、Footer1、组件化编码流程&#xff08;通用&#xff09; 拆分组…