首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >刮伤新手:教程dmozItem不支持字段:标题

刮伤新手:教程dmozItem不支持字段:标题
EN

Stack Overflow用户
提问于 2016-02-01 09:11:53
回答 1查看 2K关注 0票数 0
代码语言:javascript
运行
复制
import scrapy
from tutorial.items import DmozItem

class DmozSpider(scrapy.Spider):
    name = "dmoz"
    allowed_domains = ["dmoz.org"]
    start_urls = [
        "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
        "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
    ]

    def parse(self, response):
        for sel in response.xpath('//ul/li'):
            item = DmozItem()
            item['title'] = sel.xpath('a/text()').extract()
            item['link'] = sel.xpath('a/@href').extract()
            item['desc'] = sel.xpath('text()').extract()
            yield item

最近我在学刮子。当我在测试教程的时候。我只是从文档中复制代码,但是它不能很好地工作,显示了错误:

代码语言:javascript
运行
复制
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\scrapy\utils\defer.py", line 102, in iter_errback
yield next(it)
File "C:\Python27\lib\site-packages\scrapy\spidermiddlewares\offsite.py", line 28, in process_spider_output
for x in result:
File "C:\Python27\lib\site-packages\scrapy\spidermiddlewares\referer.py", line 22, in <genexpr>
return (_set_referer(r) for r in result or ())
File "C:\Python27\lib\site-packages\scrapy\spidermiddlewares\urllength.py", line 37, in <genexpr>
return (r for r in result or () if _filter(r))
File "C:\Python27\lib\site-packages\scrapy\spidermiddlewares\depth.py", line 54, in <genexpr>
return (r for r in result or () if _filter(r))
File "C:\Users\DannyVim\Desktop\scrapy learning\tutorial\tutorial\spiders\dmoz_spider.py", line 17, in parse
item['title'] = sel.xpath('a/text()').extract()
File "C:\Python27\lib\site-packages\scrapy\item.py", line 63, in __setitem__
(self.__class__.__name__, key))
KeyError: 'DmozItem does not support field: title'

我的items.py写得如下:

代码语言:javascript
运行
复制
import scrapy

class DmozItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field
    link = scrapy.Field
    desc = scrapy.Field

我不知道这有什么问题。我几乎没有发现这方面的信息。所以有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-01 09:26:31

你把()忘在scrapy.Field()

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

https://stackoverflow.com/questions/35126641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档