首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我使用Scrapy shell得到一个空列表?

使用Scrapy shell得到一个空列表可能有以下几个原因:

  1. 爬取的网页没有正确加载:Scrapy shell是用于调试和测试爬虫的工具,它会模拟发送请求并获取响应。如果爬取的网页没有正确加载,可能会导致获取的内容为空。可以通过检查网页的状态码、请求头和响应内容来确定是否成功加载网页。
  2. 提取规则有误:在Scrapy中,使用XPath或CSS选择器来提取网页中的数据。如果提取规则有误,可能无法正确提取到目标数据,导致得到一个空列表。可以通过检查提取规则是否正确,以及使用Scrapy shell的response.xpath()response.css()方法来手动测试提取规则。
  3. 网页内容动态生成:有些网页的内容是通过JavaScript动态生成的,而Scrapy shell默认只获取静态网页内容。如果目标数据是通过JavaScript动态加载的,可能无法在Scrapy shell中获取到。可以尝试使用Scrapy的Splash插件或其他动态网页渲染工具来获取动态生成的内容。
  4. 网页结构变化:如果目标网页的结构发生了变化,原先编写的爬虫代码可能无法正确提取数据。可以通过检查网页的HTML结构变化,并相应地修改提取规则来解决问题。

总结起来,使用Scrapy shell得到一个空列表可能是由于网页加载问题、提取规则错误、动态内容生成或网页结构变化等原因导致的。需要仔细检查和调试代码,确保正确获取目标数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用shell脚本得到MySQL实例列表

相信这个事情认真做起来,会有很多的意外收获。 所以目前的一个需求就会是先收集目前服务器上已有的数据库实例,和已有的元数据做比对。...有几个问题就会马上呈现出来,一个是因为历史原因,有些数据库实例的socket文件路径不规范,还有不少服务器有单机多实例的情况。...所以假设我们拿到了一个服务器列表是100台服务器,那么数据库实例可能是150或者200以上。...要做梳理,我们就需要明确实例的基本信息,所以我写了一个初步的脚本,从进程的描述信息中抓取实例的信息,然后过滤得到需要的一些属性,比如端口和socket配置。...有了这些信息,就可以尝试遍历一个列表文件来逐个比对了。

99520

请教一个问题,为什么列表格式,但是运行就报错啊?

一、前言 前几天在Python最强王者群【黑科技·鼓包】问了一个numpy数据处理的问题,一起来看看吧。 请教一个问题,为什么列表格式,但是运行就报错啊?不允许变量赋值这个结果吗?...np.gcd.reduce(列表),简单来说需要一个输入框,输入一串字符串逗号分隔的数字,用来判断公约数然后所有数值除以这个值,得到最小的值,例如10,20,30的结果是1,2,3 二、实现过程 这里...但是又出现新问题了,为什么不计算结果啊?后来发现是列表处理冗余了。 这下总算欧克了。 三、总结 大家好,是皮皮。...这篇文章主要盘点了一个numpy数据处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

11820
  • 【Python环境】Scrapy爬虫轻松抓取网站数据

    ,默认的 request 得到 response 之后会调用这个回调函数,我们需要在这里对页面进行解析,返回两种结果(需要进一步 crawl 的链接和需要保存的数据),让感觉有些奇怪的是,它的接口定义里这两种结果竟然是混杂在一个...总之这里我们先写一个空函数,只返回一个列表。另外,定义一个“全局”变量 SPIDER ,它会在 Scrapy 导入这个 module 的时候实例化,并自动被 Scrapy 的引擎找到。...接下来便是要对页面进行分析,Scrapy 提供了一个很方便的 Shell (需要 IPython )可以让我们做实验,用如下命令启动 Shell : ....需要注意的是,这里返回的列表里并不是一个个的字符串格式的 URL 就完了,Scrapy 希望得到的是Request 对象,这比一个字符串格式的 URL 能携带更多的东西,诸如 Cookie 或者回调函数之类的...BlogCrawlItem 是 Scrapy 自动帮我们定义好的一个继承自ScrapedItem 的类,在 items.py 中,这里加了一点东西: from scrapy.item import

    1.7K100

    scrapy大战京东商城

    作者说 SCrapy爬虫大战京东商城 引言 上一篇已经讲过怎样获取链接,怎样获得参数了,详情请看python爬取京东商城普通篇 代码详解 首先应该构造请求,这里使用scrapy.Request...这里还是和上面说的一样,这个url得到的仅仅是前一半的信息,如果想要得到后一半的信息还有再次请求,这里还有注意的就是一个技巧:一般先解析出一个数据的数组,不急着取出第一个数,先要用if语句判断,因为如果得到的是...,然后从中抽取每一个框架 for goods in all_goods: #从中解析每一个 # scrapy.shell.inspect_response...img_url_src = goods.xpath("div/div[1]/a/img/@src").extract() # 如果不存在就是一个数组[],因此不能在这里取[0]...ip代理,这个在前面的博客中又讲到,这里就不再赘述了,想看源代码的朋友请点击这里 小技巧 人们会抱怨为什么自己的爬虫在中途断开就要重头开始爬,为什么不能从断开那里开始爬呢,这里提供一个方法:在配置文件

    67210

    Scrapy笔记四 自动爬取网页之使用CrawlSpider

    (2)使用: 它与Spider类的最大不同是多了一个rules参数,其作用是定义提取动作。...在rules中包含一个或多个Rule对象,Rule类与CrawlSpider类都位于scrapy.contrib.spiders模块中。...shell中验证 开始编写代码之前,使用scrapyshell查看使用SmglLinkExtractor在网页中获取到的链接: scrapy shell http://blog.csdn.net/u012150179...注意:在shell中并不对提取到的link进行跟进。 在这里不得不提的就是scrapy shell是对调试、验证很有用的交互工具。应该掌握。 在shell中进行了验证后进入写代码阶段。...原创文章,转载请注明: 转载自URl-team 本文链接地址: Scrapy笔记四 自动爬取网页之使用CrawlSpider

    71110

    《Learning Scrapy》(中文版)第3章 爬虫基础

    这个留给以后再说,现在如果你想加载一个网页,你可以使用Scrapy终端,如下所示: scrapy shell -s USER_AGENT="Mozilla/5.0" <your url here e.g...请求和响应 在前面的输出日志中,Scrapy自动为我们做了一些工作。我们输入了一条地址,Scrapy做了一个GET请求,并得到一个成功响应值200。这说明网页信息已经成功加载,并可以使用了。...一个Scrapy项目 目前为止,我们只是在Scrapy shell中进行操作。学过前面的知识,现在开始一个Scrapy项目,Ctrl+D退出Scrapy shell。...现在,我们可以看到使用这个简单的爬虫,所有的数据都用XPath得到了。 来看另一个命令,scrapy parse。它可以让我们选择最合适的爬虫来解析URL。...----------------- Ran 3 contracts in 1.640s OK 如果url的字段是的(被注释掉),你会得到一个描述性错误: FAIL: [basic] parse (@scrapes

    3.2K60

    Python 爬虫之Scrapy《中》

    同时Scrapy还给我们提供自己的数据解析方法,即Selector(选择器),Selector是一个可独立使用的模块,我们可以用Selector类来构建一个选择器对象,然后调用它的相关方法如xpaht(...Scrapy Shell 主要用于测试Scrapy项目中命令是否生效,可在bash下直接执行,这里我们通过使用Scrapy Shell来验证学习选择器提取网页数据,使用的是在windows下 cmd 命令行下执行此命令...符号的使用使用”.”表示当前节点元素,使用 xpath 可以连续调用,如果前一个 xpath 返回一个Selector 的列表,那么这个列表可以继续调用 xpath,功能是为每个列表元素调用 xpath...'>] Step4: text() 它可以得到一个 Selector 元素包含的文本值,文本值节点对象也是一个Selector 对象,可以再通过 extract()获取文本值。.../a/text()' data='SCRAPY爬虫实验室 - SCRAPY中文网提供'>] Step5: "@attrName"得到一个 Selector 元素的 attrName 属性节点对象,属性节点对象也是一个

    85210

    scrapy 快速入门

    可以看到,和我们手动使用request库和BeautifulSoup解析网页内容不同,Scrapy专门抽象了一个爬虫父类,我们只需要重写其中的方法,就可以迅速得到一个可以不断爬行的爬虫。...start_requests() 方法,必须返回一个可迭代的列表(可以是列表,也可以是生成器),Scrapy会从这些请求开始抓取网页。...我们可以使用下面的命令启动Scrapy shell并提取百思不得姐段子的内容,成功运行之后会打开一个交互式shell,我们可以进行交互式编程,随时查看代码的运行结果。...下面的例子是爬取CSDN博客所有文章和连接的爬虫。这个爬虫没有处理CSDN博客置顶文章,所以置顶文章爬取的文章标题是。...spiders模块中放置所有爬虫,scrapy.cfg是项目的全局配置文件,其余文件是Scrapy的组件。 ? 创建爬虫 使用下面的命令可以创建一个爬虫,爬虫会放置在spider模块中。

    1.3K50

    从原理到实战,一份详实的 Scrapy 爬虫教程

    感兴趣的查看官方文档: 官方文档 http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/shell.html Scrapy Shell根据下载的页面会自动创建一些方便使用的对象...当shell载入后,将得到一个包含response数据的本地 response 变量,输入 response.body将输出response的包体,输出 response.headers 可以看到response...selector list列表,语法同 BeautifulSoup4 re(): 根据传入的正则表达式对数据进行提取,返回字符串list列表 七、案例实战 本节,使用Scrapy爬取站酷数据作为示例...方法 & 描述 extract() 返回的是符合要求的所有的数据,存在一个列表里。 extract_first() 返回的hrefs 列表里的第一个数据。...为什么使用yield而不是return 不能使用return这个无容置疑,因为要翻页,使用return直接退出函数;而对于yield:在调用for的时候,函数内部不会立即执行,只是返回了一个生成器对象。

    9.7K51

    爬虫系列(11)Scrapy 数据的提取和保存以及Pipeline的介绍。

    1.Scrapy提取项目 从网页中提取数据,Scrapy 使用基于 XPath 和 CSS 表达式的技术叫做选择器。...方法 & 描述 extract() 它返回一个unicode字符串以及所选数据 extract_first() 它返回第一个unicode字符串以及所选数据 re() 它返回Unicode字符串列表,当正则表达式被赋予作为参数时提取...xpath() 它返回选择器列表,它代表由指定XPath表达式参数选择的节点 css() 它返回选择器列表,它代表由指定CSS表达式作为参数所选择的节点 2.Scrapy Shell 如果使用选择器想快速的到到效果...,我们可以使用Scrapy Shell scrapy shell "http://www.163.com" 注意windows系统必须使用双引号 2.1 举例 从一个普通的HTML网站提取数据,查看该网站得到的...Scrapy使用Item类生成输出对象用于收刮数据 Item 对象是自定义的python字典,可以使用标准字典语法获取某个属性的值 4.1 定义 import scrapy class InfoItem

    2.7K30

    Python3网络爬虫(十二):初识Scrapy之再续火影情缘

    就从那时开始,走上了追《火影忍者》的道路。虽然,这是一个暴露年龄的事情,可是还是想说,也算是一个资深的火影迷了。鸣人的火之意志、鸣人和佐助的羁绊的故事,看得热血沸腾。...2.3.2 Shell分析 在编写程序之前,我们可以使用Scrapy内置的Scrapy shell,分析下目标网页,为后编写梳理思路。...使用ctrl+c退出之前的shell,分析章节页面,以第一章为例,使用指令如下: scrapy shell "http://comic.kukudm.com/comiclist/3/1.htm"..."comipic"]/@src').extract() 但是你会发现,返回为。...这是为什么?通过response.body打印信息不难发现,这个链接是使用JS动态加载进去的。直接获取是不行的,网页分为静态页面和动态页面,对于静态页面好说,对于动态页面就复杂一些了。

    78721

    爬虫篇 | 高级爬虫( 二):Scrapy爬虫框架初探

    D:\work\my_python\python_scrapy 这是要创建Scrapy项目的地址,然后运行命令 scrapy startproject csdnSpider 即可创建一个名为csdnSpider...,返回一个unicode字符串列表。...新打开一个命令窗口:输入D:\work\my_python\python_scrapy>scrapy shell "https://www.csdn.net/nav/ai" 效果图: ?...Scrapy爬虫调试 调试方法 scrapy有三种比较常用的调试方式:Parse命令,Scrapy Shell和Logging(使用起来不方便,不介绍) Parse命令 检查spider输出的最基本方法是使用.../nav/ai" 注意:spider=之间是没有空格的 ,切记,刚刚犯了错误 得到效果图如下: Scrapy shell 尽管使用Parse命令对检查spider的效果十分有用,但除了显示收到的response

    1.6K20

    Scrapy(7) Shell 研究

    欢迎点赞,关注,收藏,分享四连击 Scrapy Shell Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式...(推荐安装IPython) 启动Scrapy Shell 进入项目的根目录,执行下列命令来启动shell: scrapy shell "http://www.itcast.cn/channel/teacher.shtml..." Scrapy Shell根据下载的页面会自动创建一些方便使用的对象,例如 Response 对象,以及 Selector 对象 (对HTML及XML内容)。...当shell载入后,将得到一个包含response数据的本地 response 变量,输入 response.body将输出response的包体,输出 response.headers 可以看到response...的包头 输入 response.selector 时, 将获取到一个response 初始化的类 Selector 的对象,此时可以通过使用 response.selector.xpath()或response.selector.css

    60810

    手把手教你用Python实现分布式爬虫(四) - scrapy爬取技术文章网站

    scrapy提供了一种shell模式,提高了调试的效率....具体操作 在命令行中,之前的启动scrapy的命令是 scrapy crawl jobbole 现在可以在命令行中使用shell,命令为 scrapy shell 网址 然后就进入了调试区域 步骤如下图...比如extract("")就表示如果前面取出数组为,那么就返回空字符串. 5 spider批量爬取 首先,我们需要通过列表页爬取所有文章的url,前面部分只爬取了一个页面 start\_urls这个list...查看伯乐在线的文章布局如下: [1240] 5.2 要点 在文章列表页中,每一篇文章是一个div块; 所以根据css选择器就能提取出文章列表中的每一篇的url; 需要考虑的问题是,提取出来的url是否精确...dict数据类型 数据爬取的主要目的就是从非结构的数据源得到结构性数据,解析完成的数据返回问题, 最简单的就是将这些字段分别都放入一个字典里,返回给scrapy.

    1.8K30

    Python:Scrapy Shell

    (推荐安装IPython) 启动Scrapy Shell 进入项目的根目录,执行下列命令来启动shell: scrapy shell "http://www.itcast.cn/channel/teacher.shtml..." Scrapy Shell根据下载的页面会自动创建一些方便使用的对象,例如 Response 对象,以及 Selector 对象 (对HTML及XML内容)。...当shell载入后,将得到一个包含response数据的本地 response 变量,输入 response.body将输出response的包体,输出 response.headers 可以看到response...输入 response.selector 时, 将获取到一个response 初始化的类 Selector 的对象,此时可以通过使用 response.selector.xpath()或response.selector.css...当然Scrapy Shell作用不仅仅如此,但是不属于我们课程重点,不做详细介绍。

    65620

    Python分布式爬虫框架Scrapy 打造搜索引擎(四) - 爬取博客网站

    scrapy提供了一种shell模式,提高了调试的效率....具体操作 在命令行中,之前的启动scrapy的命令是 scrapy crawl jobbole 现在可以在命令行中使用shell,命令为 scrapy shell 网址 然后就进入了调试区域 步骤如下图...比如extract("")就表示如果前面取出数组为,那么就返回空字符串. 5 spider批量爬取 首先,我们需要通过列表页爬取所有文章的url,前面部分只爬取了一个页面 start_urls这个...查看伯乐在线的文章布局如下: 图片 5.2 要点 在文章列表页中,每一篇文章是一个div块; 所以根据css选择器就能提取出文章列表中的每一篇的url; 需要考虑的问题是,提取出来的url...dict数据类型 数据爬取的主要目的就是从非结构的数据源得到结构性数据,解析完成的数据返回问题, 最简单的就是将这些字段分别都放入一个字典里,返回给scrapy.

    1K40
    领券