我正在编写一个抓取工具来从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
任何人都可以帮我弄清楚如何处理这个问题吗?谢谢!
答案 0 :(得分:2)
使用
from hw1.yelpItem import YelpItem
因为当您尝试from hw1.items
时,您引用了items.py
文件,但YelpItem
位于yelpItem.py
文件中,您还必须更新导入路径。
您可以阅读背景原因here。