Scrapy 新手问题 - 无法运行教程文件
我刚开始学习Python和Scrapy,所以我先试着按照教程来做。我想要抓取www.dmoz.org这个网站,正如教程所说的那样。
我按照下面的内容写了dmoz_spider.py这个文件:
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from dmoz.items import DmozItem
class DmozSpider(BaseSpider):
name = "dmoz.org"
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):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//ul/li')
items = []
for site in sites:
item = DmozItem()
item['title'] = site.select('a/text()').extract()
item['link'] = site.select('a/@href').extract()
item['desc'] = site.select('text()').extract()
items.append(item)
return items
但是我从网站上得到的结果和我预期的完全不一样。
你们知道我哪里搞错了吗?
3 个回答
0
你需要找到存放settings.py文件的文件夹,然后在那个地方运行
scrapy crawl dmoz。
为了更清楚,跟着你的项目结构对照一下这个链接:https://github.com/scrapy/dirbot
1
你贴的代码没有问题。问题可能出在其他地方。能不能把你得到的完整输出也贴出来?(你的评论在有趣的部分之前就结束了……)
7
我遇到了这个问题。确保你按照教程里的说明做了下面的更改。
打开 items.py 文件,看看你是否把 class
class TutorialItem(Item):
title=Field()
link=Field()
desc=Field()
改成了:
class DmozItem(Item):
title=Field()
link=Field()
desc=Field()