Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >抓取-数据提取(如json)

抓取-数据提取(如json)
EN

Stack Overflow用户
提问于 2018-03-17 21:07:02
回答 1查看 275关注 0票数 0

我试图通过使用刮除来废弃两个网页,但我没有得到预期的输出。还试图将数据提取为json文件,但输出文件为空。到目前为止,我已经尝试了下面提到的代码:

代码语言:javascript
运行
AI代码解释
复制
from plants.items import PlantsItem


class PlantsSpider(scrapy.Spider):
   name = "plants"
   allowed_domains = ["greatplantpicks.org"]


#Scraping web page

   start_urls = ["http://www.greatplantpicks.org/plantlists/by_plant_type/conifer"]


   def parse(self, response):

为了以json的形式获得输出,我使用了以下命令:

代码语言:javascript
运行
AI代码解释
复制
scrapy crawl plants -o trees_json.json

但是,除了下面提到的一些日志细节之外,我没有得到任何输出:

代码语言:javascript
运行
AI代码解释
复制
2018-03-18 04:47:29 [scrapy.utils.log] INFO: Scrapy 1.5.0 started (bot: plants)
2018-03-18 04:47:29 [scrapy.utils.log] INFO: Versions: lxml 4.2.0.0, libxml2 2.9.8, cssselect 1.0.3, parsel 1.4.0, w3lib 1.19.0, Twisted 17.9.0, Python 3.5.2 (default, Nov 23 2017, 16:37:01) - [GCC 5.4.0 20160609], pyOpenSSL 17.5.0 (OpenSSL 1.1.0g  2 Nov 2017), cryptography 2.1.4, Platform Linux-4.13.0-37-generic-x86_64-with-Ubuntu-16.04-xenial
2018-03-18 04:47:29 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'plants', 'FEED_FORMAT': 'json', 'FEED_URI': 'trees_json.json', 'SPIDER_MODULES': ['plants.spiders'], 'NEWSPIDER_MODULE': 'plants.spiders', 'ROBOTSTXT_OBEY': True}
2018-03-18 04:47:29 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
 'scrapy.extensions.logstats.LogStats',
 'scrapy.extensions.memusage.MemoryUsage',
 'scrapy.extensions.telnet.TelnetConsole',
 'scrapy.extensions.feedexport.FeedExporter']
2018-03-18 04:47:29 [scrapy.middleware] INFO: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware',
 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
 'scrapy.downloadermiddlewares.retry.RetryMiddleware',
 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
 'scrapy.downloadermiddlewares.stats.DownloaderStats']
2018-03-18 04:47:29 [scrapy.middleware] INFO: Enabled spider middlewares:
['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware',
 'scrapy.spidermiddlewares.referer.RefererMiddleware',
 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
 'scrapy.spidermiddlewares.depth.DepthMiddleware']
2018-03-18 04:47:29 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2018-03-18 04:47:29 [scrapy.core.engine] INFO: Spider opened
2018-03-18 04:47:29 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-03-18 04:47:29 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2018-03-18 04:47:29 [scrapy.core.engine] DEBUG: Crawled (404) <GET http://www.greatplantpicks.org/robots.txt> (referer: None)
2018-03-18 04:47:30 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://www.greatplantpicks.org/plantlists/by_plant_type/conifer> (referer: None)
2018-03-18 04:47:30 [scrapy.core.scraper] ERROR: Spider error processing <GET http://www.greatplantpicks.org/plantlists/by_plant_type/conifer> (referer: None)
Traceback (most recent call last):
  File "/home/mushfika/.local/lib/python3.5/site-packages/twisted/internet/defer.py", line 653, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/home/mushfika/.local/lib/python3.5/site-packages/scrapy/spiders/__init__.py", line 90, in parse
    raise NotImplementedError('{}.parse callback is not defined'.format(self.__class__.__name__))
NotImplementedError: PlantsSpider.parse callback is not defined
2018-03-18 04:47:30 [scrapy.core.engine] INFO: Closing spider (finished)
2018-03-18 04:47:30 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 832,
 'downloader/request_count': 2,
 'downloader/request_method_count/GET': 2,
 'downloader/response_bytes': 61907,
 'downloader/response_count': 2,
 'downloader/response_status_count/200': 1,
 'downloader/response_status_count/404': 1,
 'finish_reason': 'finished',
 'finish_time': datetime.datetime(2018, 3, 18, 4, 47, 30, 595060),
 'log_count/DEBUG': 3,
 'log_count/ERROR': 1,
 'log_count/INFO': 7,
 'memusage/max': 53207040,
 'memusage/startup': 53207040,
 'response_received_count': 2,
 'scheduler/dequeued': 1,
 'scheduler/dequeued/memory': 1,
 'scheduler/enqueued': 1,
 'scheduler/enqueued/memory': 1,
 'spider_exceptions/NotImplementedError': 1,
 'start_time': datetime.datetime(2018, 3, 18, 4, 47, 29, 597697)}
2018-03-18 04:47:30 [scrapy.core.engine] INFO: Spider closed (finished)

我是python的新手,所以如果有人帮我解决这个问题,那就太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-17 21:21:15

查看日志中的下列行:

代码语言:javascript
运行
AI代码解释
复制
2018-03-18 04:47:30 [scrapy.core.scraper] ERROR: Spider error processing <GET http://www.greatplantpicks.org/plantlists/by_plant_type/conifer> (referer: None)
Traceback (most recent call last):
  File "/home/mushfika/.local/lib/python3.5/site-packages/twisted/internet/defer.py", line 653, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/home/mushfika/.local/lib/python3.5/site-packages/scrapy/spiders/__init__.py", line 90, in parse
    raise NotImplementedError('{}.parse callback is not defined'.format(self.__class__.__name__))
NotImplementedError: PlantsSpider.parse callback is not defined

要使用scrapy,您必须实现一个parse()回调,但在Python中,缩进关系到。缩进的方式将parse()函数置于PlantSpider类定义之外,并解释了为什么没有得到所需的输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49344639

复制
相关文章
JSON数据提取
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。JSON在数据交换中起到了一个载体的作用,承载着相互传递的数据。JSON适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。
py3study
2020/01/19
2.2K0
JSON数据提取
Python数据提取Json
参考链接: Python-Json 2 : 使用json.load/loads读取JSON文件/字符串
用户7886150
2021/01/15
3.3K0
Python提取json数据
import json jsonstring = '{"user_man":[{"name":"Peter"},{"name":"xiaoming"}],"user_woman":[{"name":"Anni"},{"name":"zhangsan"}]}' print(json_data) print(json_data['user_man']) print(json_data['user_woman']) print(json_data['user_man'][0]) print(json_data
py3study
2020/01/06
1.7K0
数据提取之JSON与JsonPATH
我们知道再爬虫的过程中我们对于爬取到的网页数据需要进行解析,因为大多数数据是不需要的,所以我们需要进行数据解析,常用的数据解析方式有正则表达式,xpath,bs4,这次我们来介绍一下另一个数据解析库--jsonpath,在此之前我们需要先了解一下什么是json。
前端皮皮
2021/12/02
2.2K0
数据提取之JSON与JsonPATH
Python数据采集:抓取和解析JSON数据
大家好!今天我要和大家分享的是Python数据采集中的一种重要技巧——抓取和解析JSON数据。在互联网时代,JSON成为了数据交换的常用格式,使用Python来采集和解析JSON数据是非常常见的任务,同时也是一项非常实用的技能。
华科云商小彭
2023/09/27
4480
Python数据采集:抓取和解析JSON数据
抓取html页面中的json数据
抓取html页面中的json数据
Java架构师必看
2021/08/03
3.5K0
Python中jmespath解析提取json数据
在做接口自动化,测试断言时,我们经常需要提取接口的的响应数据字段,以前用过jsonpath,有几篇相关文章,可以参考下(Python深层解析json数据之JsonPath、【Jmeter篇】后置处理器之正则提取器、Json提取器 、Jmeter之json提取器实战(二)、Jmeter之json条件提取实战(三) )今天我们来介绍下jmespath用法,可以帮我们进行数据的灵活提取,下面通过案例来说明jmespath在python的使用。
王大力测试进阶之路
2022/03/14
5.4K0
Python中jmespath解析提取json数据
【笔记php】如何使用PHP从JSON提取数据?
2022年8月26日16点36分 如何使用PHP从JSON提取数据? 不多bb,直接上示例 一 $Json = ' { "type": "fish9.cn", "name": "fish9.cn" }'; $fish = Json_decode($Json,true); echo $fish["type"]; //结果fish9.cn 二 $Json = '{ "type":"fish9.cn", "name":"fish9.cn", "daily":[{
吃猫的鱼Code
2023/02/02
5.2K0
提取在线数据的9个海外最佳网页抓取工具
Web Scraping工具专门用于从网站中提取信息。它们也被称为网络收集工具或Web数据提取工具。
Blue姐
2019/07/10
7.2K0
8-Json提取器
在「函数助手」中设置属性名称为jmeter.version后点击生成。可以看到结果与「属性显示」中一致
zx钟
2021/04/29
1K0
8-Json提取器
任意关键词(如淄博烧烤)微博数据抓取及可视化
利用在上一期【推送】中微博关键词爬虫,爬取了超过 4000 条微博数据,每条数据 18 个字段,这一期,我们来看看对这份数据的数据分析。包含常规可视化和复杂网络建模两部分,也许值得一个收藏、转发。
月小水长
2023/07/03
6630
任意关键词(如淄博烧烤)微博数据抓取及可视化
爬虫抓取新闻模块提取库推荐newspaper
安装 pip3 install newspaper3k 使用 from newspaper import Article url = 'http://www.example.com/path/to/article' article = Article(url) article.download() article.parse() text = article.text # 获取新闻正文 images = article.images # 获取新闻图片
小小咸鱼YwY
2023/03/18
2520
JMeter之Json提取器详解
Json提取器属于JMeter的后置处理器, 所谓后置提取器就是请求结束后, 对响应结果进行变量提取, 提取变量是为了验证变量是否符合预期或者将变量值作为全局变量, 以供其他请求使用.
louiezhou001
2020/07/22
8.5K0
Python抓取数据_python抓取游戏数据
本文整理自慕课网《Python开发简单爬虫》,将会记录爬取百度百科“python”词条相关页面的整个过程。
全栈程序员站长
2022/09/20
2.1K0
Jmeter之json条件提取实战(三)
之前写过2篇json提取的文章【Jmeter篇】后置处理器之正则提取器、Json提取器Jmeter之json提取器实战(二)有时我们想通过接口响应数据中的默写条件进行提取对应的字段,这时,就可以用到json条件提取,可以提取对应的值进行使用或迭代。
王大力测试进阶之路
2020/02/10
1.3K0
Jmeter之json提取器实战(二)
之前写过一篇文章【Jmeter篇】后置处理器之正则提取器、Json提取器 不是很完善,今天我们再来写一篇json提取器进行补充说明。
王大力测试进阶之路
2019/12/15
9440
Jmeter系列(26)- 详解 JSON 提取器
Compute concatenation var(suffix_ALL)
小菠萝测试笔记
2020/06/24
2.4K0
Jmeter系列(26)- 详解 JSON 提取器
高级性能测试系列《14.响应的提取--json提取器:一个json提取器写多个提取式、正则提取器:万能正则式怎么用?》
没写消息头,运行成功,是因为get请求参数的类型没有json格式,约定俗成的不用这种方式。
清菡
2022/06/21
2.8K0
高级性能测试系列《14.响应的提取--json提取器:一个json提取器写多个提取式、正则提取器:万能正则式怎么用?》
数据抓取练习
代码放在Github上了。https://github.com/lpe234/meizi_spider
lpe234
2020/07/27
1.2K0
jmeter中[取样器]JSON Extractor提取实例ID用法
在对某个复杂接口返回结果数据较多时,json结构形式的HTTP请求进行提取某一个值,比如提取
陈定攀
2021/11/24
1.8K0

相似问题

用抓取器提取Json数据?

13

抓取抓取不提取数据

19

web抓取时提取json

14

抓取JSON数据

133

Web抓取、数据挖掘、数据提取

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档