2017-12-05 11 views
1

私はスクレイピーが新しく、なぜ私がスクリーニングシェルから必要な要素を抽出できるのかを理解しようとしていますが、コマンドラインから作成したスクリーピースパイダーではありません。次返しスクイピースパイダーからの出力がスクラピーシェルよりも

pipenv run scrapy shell http://quotes.toscrape.com/ 

その後

response.css('small.author::text').extract() 

:これは、すべての意図されたよう

['Albert Einstein', 'J.K. Rowling', 'Albert Einstein', 'Jane Austen', 'Marilyn Monroe', 'Albert Einstein', 'André Gide', 'Thomas A. Edison', 'Eleanor Roosevelt', 'Steve Martin']

scrapyシェルで

は、私は次のことをやりました。しかし、私はscrapyスパイダーを作成し、後でそれを実行するときにいくつかの問題があります。私のコードは以下の通りです:

# -*- coding: utf-8 -*- 
import scrapy 

class Yolo1Spider(scrapy.Spider): 
    name = 'yolo1' 
    allowed_domains = ['toscrape.com'] 
    start_urls = ['http://http://quotes.toscrape.com/'] 

    def parse(self, response): 
     self.log('Just visited' + response.url) 
     yield { 
      'author': response.css('small.author::text').extract() 
      } 

私は、コマンドラインからクモを実行します。私は、私は感覚を得る

2017-12-04 20:03:56 [yolo1] DEBUG: Just visitedhttp://www.dnsrsearch.com/index.php?origURL= http://http/quotes.toscrape.com/&bc= 2017-12-04 20:03:56 [scrapy.core.scraper] ERROR: Error processing {'author': []} Traceback (most recent call last): File "c:\users\alice.virtualenvs\all-the-places-c44chfla\lib\site-packages\twisted\internet\defer.py", line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File "C:\Users\alice\all-the-places\locations\pipelines.py", line 16, in process_item ref = item['ref'] KeyError: 'ref'

pipenv run scrapy crawl yolo1 

私が得るエラーを以下の通りです。ちょうど何かが簡単に欠けているが、私の人生のために私はそれを理解することができず、場所全体をチェックしている。

スパイダークロールの出力に、私が書きましたデバッグ行が表示されていますが、それ以降はエラーが表示されます。本当に、私が行ったスパイダーとコマンドラインの両方から同じ出力を得るべきだと思った。

+0

あなたが持っているhttp://http://quotes.toscrape.com/を参照してください 'ます。http://'二回のurlに - '見る」のhttp://のhttp:// quotes.toscrape.com /' – furas

答えて

0

あなたはhttp://という2度の開始URLを間違えています。

+1

本当にありがとうございました。ときどき、これらのことについて目の新鮮なセットが本当に必要になることがあります。 –

関連する問題