Scrapy:递归爬网生成DEBUG:Crawled(200)并且没有项目输出

时间:2014-02-22 20:51:44

标签: python recursion web-crawler scrapy

我正在尝试让我的第一个Scrapy递归蜘蛛在一个非常简单的网站上运行,但是在JSON文件中出现了DEBUG:Crawled(200)问题。

我从网上抽了一个例子并尝试过。我真的不知道,问题出在哪里。任何人都可以帮我这个吗?

蜘蛛代码:

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item

class rgfMedlem(CrawlSpider):
    name = "rgfMedlem"
    allowed_domains = ["rgf.no"]
    start_urls = ["http://rgf.no/medlem/index.php"]

    rules = (
        Rule(SgmlLinkExtractor(allow=('index.php', ))),

        Rule(SgmlLinkExtractor(allow=('\?s=', )), callback='parse_item'),
    )

    def parse_item(self, response):
        hxs = HtmlXPathSelector(response)
        rows = hxs.select('//span[@class="innhold"]/table/tr')
        items = []
        item = SasItem()

        for row in rows:
            print "har ar jag"
            item['agent'] = row.select('td/b/text()').extract()
            item['org'] = row.select('td/b/text()').extract()
            item['link'] = rows.select('td/a/@href').extract()
            item['produkt'] = rows.select('td/b/text()').extract()
            items.append(item)

        return items

蜘蛛抓取日志文件

2014-02-22 21:32:39+0100 [scrapy] INFO: Scrapy 0.22.2 started (bot: sas)
2014-02-22 21:32:39+0100 [scrapy] INFO: Optional features available: ssl, http11
2014-02-22 21:32:39+0100 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'sas.spiders', 'FEED_URI': 'scraped_data.json', 'SPIDER_MODULES': ['sas.spiders'], 'BOT_NAME': 'sas', 'DEFAULT_ITEM_CLASS': 'sas.items.SasItem', 'FEED_FORMAT': 'json', 'LOG_FILE': 'log.txt'}
2014-02-22 21:32:39+0100 [scrapy] INFO: Enabled extensions: FeedExporter, LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, SpiderState
2014-02-22 21:32:39+0100 [scrapy] INFO: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware, ChunkedTransferMiddleware, DownloaderStats
2014-02-22 21:32:39+0100 [scrapy] INFO: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware
2014-02-22 21:32:39+0100 [scrapy] INFO: Enabled item pipelines: 
2014-02-22 21:32:39+0100 [rgfMedlem] INFO: Spider opened
2014-02-22 21:32:39+0100 [rgfMedlem] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2014-02-22 21:32:39+0100 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:6023
2014-02-22 21:32:39+0100 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php> (referer: None)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=F> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Filtered duplicate request: <GET http://rgf.no/medlem/index.php?q=1> - no more duplicates will be shown (see DUPEFILTER_CLASS)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=4> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=6> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=E> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=A> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=1> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=C> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=B> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=D> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=%D8> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=Z> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=Y> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=X> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=W> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=V> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=U> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=T> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=F&s=10> (referer: http://rgf.no/medlem/index.php?q=F)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=R> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:45+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=Q> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=N> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=C&s=10> (referer: http://rgf.no/medlem/index.php?q=C)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=P> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=O> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=A&s=10> (referer: http://rgf.no/medlem/index.php?q=A)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=B&s=10> (referer: http://rgf.no/medlem/index.php?q=B)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=M> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=E&s=10> (referer: http://rgf.no/medlem/index.php?q=E)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=L> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=K> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=D&s=10> (referer: http://rgf.no/medlem/index.php?q=D)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=J> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=V&s=10> (referer: http://rgf.no/medlem/index.php?q=V)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=W&s=10> (referer: http://rgf.no/medlem/index.php?q=W)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=I> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=F&s=20> (referer: http://rgf.no/medlem/index.php?q=F&s=10)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=H> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=10> (referer: http://rgf.no/medlem/index.php?q=S)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=F&s=0> (referer: http://rgf.no/medlem/index.php?q=F&s=10)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=T&s=10> (referer: http://rgf.no/medlem/index.php?q=T)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=R&s=10> (referer: http://rgf.no/medlem/index.php?q=R)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=G> (referer: http://rgf.no/medlem/index.php)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=O&s=10> (referer: http://rgf.no/medlem/index.php?q=O)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=P&s=10> (referer: http://rgf.no/medlem/index.php?q=P)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=B&s=20> (referer: http://rgf.no/medlem/index.php?q=B&s=10)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=B&s=0> (referer: http://rgf.no/medlem/index.php?q=B&s=10)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=E&s=20> (referer: http://rgf.no/medlem/index.php?q=E&s=10)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=J&s=10> (referer: http://rgf.no/medlem/index.php?q=J)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=W&s=0> (referer: http://rgf.no/medlem/index.php?q=W&s=10)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=K&s=10> (referer: http://rgf.no/medlem/index.php?q=K)
2014-02-22 21:32:46+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=A&s=20> (referer: http://rgf.no/medlem/index.php?q=A&s=10)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=I&s=10> (referer: http://rgf.no/medlem/index.php?q=I)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=20> (referer: http://rgf.no/medlem/index.php?q=S&s=10)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=L&s=10> (referer: http://rgf.no/medlem/index.php?q=L)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=H&s=10> (referer: http://rgf.no/medlem/index.php?q=H)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=M&s=10> (referer: http://rgf.no/medlem/index.php?q=M)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=G&s=10> (referer: http://rgf.no/medlem/index.php?q=G)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=F&s=30> (referer: http://rgf.no/medlem/index.php?q=F&s=20)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=0> (referer: http://rgf.no/medlem/index.php?q=S&s=10)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=V&s=0> (referer: http://rgf.no/medlem/index.php?q=V&s=10)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=B&s=30> (referer: http://rgf.no/medlem/index.php?q=B&s=20)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=E&s=0> (referer: http://rgf.no/medlem/index.php?q=E&s=10)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=P&s=20> (referer: http://rgf.no/medlem/index.php?q=P&s=10)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=P&s=0> (referer: http://rgf.no/medlem/index.php?q=P&s=10)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=O&s=0> (referer: http://rgf.no/medlem/index.php?q=O&s=10)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=A&s=30> (referer: http://rgf.no/medlem/index.php?q=A&s=20)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=K&s=20> (referer: http://rgf.no/medlem/index.php?q=K&s=10)
2014-02-22 21:32:47+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=K&s=0> (referer: http://rgf.no/medlem/index.php?q=K&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=H&s=0> (referer: http://rgf.no/medlem/index.php?q=H&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=30> (referer: http://rgf.no/medlem/index.php?q=S&s=20)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=L&s=0> (referer: http://rgf.no/medlem/index.php?q=L&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=H&s=20> (referer: http://rgf.no/medlem/index.php?q=H&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=O&s=20> (referer: http://rgf.no/medlem/index.php?q=O&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=L&s=20> (referer: http://rgf.no/medlem/index.php?q=L&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=I&s=20> (referer: http://rgf.no/medlem/index.php?q=I&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=M&s=20> (referer: http://rgf.no/medlem/index.php?q=M&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=J&s=0> (referer: http://rgf.no/medlem/index.php?q=J&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=G&s=20> (referer: http://rgf.no/medlem/index.php?q=G&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=I&s=0> (referer: http://rgf.no/medlem/index.php?q=I&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=M&s=0> (referer: http://rgf.no/medlem/index.php?q=M&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=G&s=0> (referer: http://rgf.no/medlem/index.php?q=G&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=R&s=20> (referer: http://rgf.no/medlem/index.php?q=R&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=T&s=0> (referer: http://rgf.no/medlem/index.php?q=T&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=D&s=20> (referer: http://rgf.no/medlem/index.php?q=D&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=T&s=20> (referer: http://rgf.no/medlem/index.php?q=T&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=H&s=30> (referer: http://rgf.no/medlem/index.php?q=H&s=20)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=D&s=0> (referer: http://rgf.no/medlem/index.php?q=D&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=C&s=20> (referer: http://rgf.no/medlem/index.php?q=C&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=A&s=40> (referer: http://rgf.no/medlem/index.php?q=A&s=30)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=A&s=0> (referer: http://rgf.no/medlem/index.php?q=A&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=40> (referer: http://rgf.no/medlem/index.php?q=S&s=30)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=C&s=0> (referer: http://rgf.no/medlem/index.php?q=C&s=10)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=50> (referer: http://rgf.no/medlem/index.php?q=S&s=40)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=G&s=30> (referer: http://rgf.no/medlem/index.php?q=G&s=20)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=H&s=40> (referer: http://rgf.no/medlem/index.php?q=H&s=30)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=T&s=30> (referer: http://rgf.no/medlem/index.php?q=T&s=20)
2014-02-22 21:32:48+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=N&s=10> (referer: http://rgf.no/medlem/index.php?q=N)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=R&s=0> (referer: http://rgf.no/medlem/index.php?q=R&s=10)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=N&s=0> (referer: http://rgf.no/medlem/index.php?q=N&s=10)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=60> (referer: http://rgf.no/medlem/index.php?q=S&s=50)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=N&s=20> (referer: http://rgf.no/medlem/index.php?q=N&s=10)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=C&s=30> (referer: http://rgf.no/medlem/index.php?q=C&s=20)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=T&s=40> (referer: http://rgf.no/medlem/index.php?q=T&s=30)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=V&s=20> (referer: http://rgf.no/medlem/index.php?q=V&s=10)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=N&s=30> (referer: http://rgf.no/medlem/index.php?q=N&s=20)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=V&s=30> (referer: http://rgf.no/medlem/index.php?q=V&s=20)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=70> (referer: http://rgf.no/medlem/index.php?q=S&s=60)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=T&s=50> (referer: http://rgf.no/medlem/index.php?q=T&s=40)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=R&s=30> (referer: http://rgf.no/medlem/index.php?q=R&s=20)
2014-02-22 21:32:49+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=N&s=40> (referer: http://rgf.no/medlem/index.php?q=N&s=30)
2014-02-22 21:32:50+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=R&s=40> (referer: http://rgf.no/medlem/index.php?q=R&s=30)
2014-02-22 21:32:50+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=A&s=50> (referer: http://rgf.no/medlem/index.php?q=A&s=40)
2014-02-22 21:32:50+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=A&s=60> (referer: http://rgf.no/medlem/index.php?q=A&s=50)
2014-02-22 21:32:51+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=T&s=60> (referer: http://rgf.no/medlem/index.php?q=T&s=50)
2014-02-22 21:32:51+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=80> (referer: http://rgf.no/medlem/index.php?q=S&s=70)
2014-02-22 21:32:51+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=90> (referer: http://rgf.no/medlem/index.php?q=S&s=80)
2014-02-22 21:32:51+0100 [rgfMedlem] DEBUG: Crawled (200) <GET http://rgf.no/medlem/index.php?q=S&s=100> (referer: http://rgf.no/medlem/index.php?q=S&s=90)
2014-02-22 21:32:51+0100 [rgfMedlem] INFO: Closing spider (finished)
2014-02-22 21:32:51+0100 [rgfMedlem] INFO: Dumping Scrapy stats:
    {'downloader/request_bytes': 32718,
     'downloader/request_count': 119,
     'downloader/request_method_count/GET': 119,
     'downloader/response_bytes': 346242,
     'downloader/response_count': 119,
     'downloader/response_status_count/200': 119,
     'finish_reason': 'finished',
     'finish_time': datetime.datetime(2014, 2, 22, 20, 32, 51, 880000),
     'log_count/DEBUG': 122,
     'log_count/INFO': 7,
     'request_depth_max': 12,
     'response_received_count': 119,
     'scheduler/dequeued': 119,
     'scheduler/dequeued/memory': 119,
     'scheduler/enqueued': 119,
     'scheduler/enqueued/memory': 119,
     'start_time': datetime.datetime(2014, 2, 22, 20, 32, 39, 846000)}
2014-02-22 21:32:51+0100 [rgfMedlem] INFO: Spider closed (finished)

1 个答案:

答案 0 :(得分:5)

所以基本上你的正则表达式不太正确,你的Xpath也需要一些调整。我认为下面的代码符合您的要求,所以请尝试一下,如果您需要更多帮助,请告诉我。

注意:此代码是使用Scrapy 0.22.2

编写和测试的
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import Selector

class rgfMedlemSpider(CrawlSpider):
    name = "rgfMedlem"
    allowed_domains = ["rgf.no"]
    start_urls = ["http://rgf.no/medlem/index.php"]

    rules = (
        Rule(SgmlLinkExtractor(allow=('(\?q=*)|(\?s=\d+&q=*)', )), callback='parse_item', follow=True),
    )

    def parse_item(self, response):
        sel = Selector(response)
        rows = sel.xpath('//span[@class="innhold"]/table/tr')
        items = []

        for row in rows[1:]:
            item = SasItem()
            item['agent'] = row.xpath('./td[1]/a/text()|./td[1]/text()').extract()
            item['org'] = row.xpath('./td[2]/text()').extract()
            item['link'] = row.xpath('./td[1]/a/@href').extract()
            item['produkt'] = row.xpath('./td[3]/text()').extract()
            items.append(item)
        return items