我是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
我应该通过网站得到的东西是不同的 知道我搞砸了什么吗?
答案 0 :(得分:7)
我有这个问题。确保按照教程中的说法进行了以下更改。
打开items.py并查看您是否更改了课程
class TutorialItem(Item):
title=Field()
link=Field()
desc=Field()
成:
class DmozItem(Item):
title=Field()
link=Field()
desc=Field()
答案 1 :(得分:1)
您粘贴的代码没有任何问题。问题必须在别的地方,你可以粘贴你得到的整个输出吗? (你的评论会在有趣的部分开始的地方停止......)
答案 2 :(得分:0)
您需要转到包含settings.py文件的目录并运行
从那里开始scrapy crawl dmoz。为了清晰起见,请将项目结构与https://github.com/scrapy/dirbot相对应