簡體   English   中英

沙皮蜘蛛的輸出與沙皮殼的輸出不同

[英]Different output from scrapy spider than from scrapy shell

我對scrapy還是陌生的,並且試圖弄清楚為什么我能夠從scrapy shell中提取所需的元素,而不是從在命令行中創建的scrapy spider中提取所需的元素。

在刮scrap的外殼中,我執行了以下操作:

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

然后

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

返回以下內容:

[“阿爾伯特·愛因斯坦”,“ JK羅琳”,“阿爾伯特·愛因斯坦”,“簡·奧斯丁”,“瑪麗蓮·夢露”,“阿爾伯特·愛因斯坦”,“安德烈·基德”,“托馬斯·愛迪生”,“埃莉諾·羅斯福”,“史蒂夫”馬丁]

這都是預期的。 但是當我創建一個抓抓的蜘蛛並隨后運行它時,我開始遇到一些問題。 我的代碼如下:

# -*- 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()
            }

我使用以下命令從命令行運行Spider:

pipenv run scrapy crawl yolo1

我得到的錯誤如下:

2017-12-04 20:03:56 [yolo1]調試:剛剛訪問http://www.dnsrsearch.com/index.php?origURL= http://http/quotes.toscrape.com/&bc= 2017-12- 04 20:03:56 [scrapy.core.scraper]錯誤:錯誤處理{'author':[]}追溯(最近一次通話是最后一次):文件“ c:\\ users \\ alice.virtualenvs \\ all-the-places- c44chfla \\ lib \\ site-packages \\ twisted \\ internet \\ defer.py”,_ runCallbacks中的653行,current.result = callback(current.result,* args,** kw)文件“ C:\\ Users \\ alice \\ all- the_places \\ locations \\ pipelines.py“,第16行,在process_item中ref = item ['ref'] KeyError:'ref'

我感覺到我只是缺少一些簡單的東西,但是對於我自己的一生,我無法弄清楚,並且一直在到處檢查。

您可以在Spider搜尋的輸出中看到我寫的調試行已打印出來,但是之后出現錯誤。 真的以為我應該從蜘蛛程序和命令行工作中獲得相同的輸出。

您在起始網址中輸入了錯誤-您有兩次http://

參見http://http://quotes.toscrape.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM