我有一个蜘蛛文件dmoz_spider.py,它的内容是:
from scrapy.spider import Spider
from scrapy.selector import Selector
from dmoz.items import DmozItem
class DmozSpider(Spider):
name = "dmoz"
allowed_domains = ["m.timesofindia.com"]
start_urls = ["http://m.timesofindia.com/india/Congress-BJP-spar-over-Gujarat-govts-Rs-11-per-day-poverty-line/articleshow/29830237.cms"]
def parse(self, response):
sel = Selector(response)
torrent = DmozItem()
filename = response.url.split("/")[-2]+"1.txt"
torrent['link'] = response.url
torrent['title'] = sel.xpath("//h1/text()").extract()
open(filename, 'wb').write(torrent['link'])
第二个文件是items.py
from scrapy.item import Item, Field
class DmozItem(Item):
title = Field()
link = Field()
desc = Field()
当我运行我的抓取工具时,我在命令行上遇到以下错误...
ImportError:没有名为dmoz.items的模块
当我从我的蜘蛛文件中删除import语句时,它给了我错误的说法
exceptions.NameError:未定义全局名称'DmozItem'
答案 0 :(得分:7)
在我的问题中发现问题并将其发布,以便如果任何人最终遇到类似的问题,他就可以得到答案。
在我的代码中我正在做这个
from dmoz.items import DmozItem
它应该是
from tutorial.items import DmozItem or
from tutorial.items import *
因为我的项目目录或包名是教程 那是我之前做的错误。
答案 1 :(得分:0)
我在写
item[title] = sel.xpath('a/text()').extract()
而不是
item['title'] = sel.xpath('a/text()').extract()