【发布时间】:2014-07-13 19:03:47
【问题描述】:
我正在尝试使用以下导入语句将字段引入Scrapy 蜘蛛:
from test.items import fixture
在这种情况下,test.py 是一个 Scrapy 脚本,包含在文件夹路径中:
C:\Python27\mrscrap\mrscrap\spiders\test.py
文件 Items.py 比它高一级,包含在文件夹路径中:
C:\Python27\mrscrap\mrscrap\items.py
这行代码产生了错误:
No module named items
我在逻辑'test.items' 中使用了正确的文件名吗?我的文件items.py 是否在正确的位置?
我的完整代码是这样的:
from scrapy.spider import Spider
from scrapy.http import Request
from mrscrap.items import Fixture
from scrapy.utils.markup import remove_tags
from scrapy.cmdline import execute
import re
class GoalSpider(Spider):
name = "goal"
allowed_domains = ["whoscored.com"]
start_urls = (
'http://www.whoscored.com/',
)
def parse(self, response):
return Request(
url="http://www.whoscored.com/Players/3859/Fixtures/Wayne-Rooney",
callback=self.parse_fixtures
)
def parse_fixtures(self,response):
sel = response.selector
for tr in sel.css("table#player-fixture>tbody>tr"):
item = Fixture()
item['tournament'] = tr.xpath('td[@class="tournament"]/span/a/text()').extract()
item['date'] = tr.xpath('td[@class="date"]/text()').extract()
item['team home'] = tr.xpath('td[@class="team home "]/a/text()').extract()
yield item
execute(['scrapy','crawl','goal'])
Items.py 中的类是这样写的:
class Fixture(Item):
tournament = Field()
date = Field()
team_home = Field()
谢谢
【问题讨论】:
-
也许您同时更改了文件夹名称。