[英]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.