Scrapy项目未定义

时间:2015-09-02 22:19:44

标签: web-scraping scrapy scrapy-spider

我正在编写一个抓取工具来从Yelp中获取一些页面。我像这样定义Yelp项目:

yelpItem.py

import scrapy

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

在spider文件夹中,我在YelpItem函数中使用了parse

def parse(self, response):
    hxs = HtmlXPathSelector(response)
    sites = hxs.select('//h3/span/a[contains(@class, "biz-name")]')
    items = []
    for site in sites:
        item = YelpItem()

运行时,它说:

NameError: global name 'YelpItem' is not defined

我搜索了几个网页,并尝试添加以下代码:

from hw1.items import YelpItem

(hw1是我的项目名称),但它没有帮助。这将导致如下错误:No module named items

任何人都可以帮我弄清楚如何处理这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:2)

使用

from hw1.yelpItem import YelpItem

因为当您尝试from hw1.items时,您引用了items.py文件,但YelpItem位于yelpItem.py文件中,您还必须更新导入路径。

您可以阅读背景原因here