3

我是 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

而我应该通过网站获得的是不同的东西。
知道我在搞砸什么吗?

4

3 回答 3

7

我有这个问题。确保按照教程中的说明进行了以下更改。

打开 items.py 看看你是否改变了类

class TutorialItem(Item):
    title=Field()
    link=Field()
    desc=Field()

进入:

class DmozItem(Item):
    title=Field()
    link=Field()
    desc=Field()
于 2012-08-30T02:11:38.000 回答
1

您粘贴的代码没有任何问题。问题一定出在其他地方,你能粘贴你得到的整个输出吗?(您的评论在有趣的部分开始时停止......)

于 2010-12-24T04:59:10.777 回答
0

您需要转到包含 settings.py 文件的目录并运行

从那里爬取dmoz。

为了清楚起见,请按照https://github.com/scrapy/dirbot的项目结构

于 2013-09-03T07:08:57.267 回答