2013-12-09 3 views
7

फंतासी टीम के लिए एक स्क्रैपर बनाना। तर्क के रूप में खिलाड़ियों के नामों की एक सूची पास करने का एक तरीका ढूंढ रहे हैं, और फिर player_list में प्रत्येक खिलाड़ी_नाम के लिए पार्सिंग कोड चलाएं।स्केपर: मकड़ी के लिए कमांड प्रॉम्प्ट के माध्यम से तर्कों की सूची कैसे पास करें?

scrapy crawl statsspider -a player_list=['xyz','abc'] 
:

मैं इस समय इस

class statsspider(BaseSpider): 
name = 'statsspider' 

def __init__ (self, domain=None, player_list=""): 
    self.allowed_domains = ['sports.yahoo.com'] 
    self.start_urls = [ 
     'http://sports.yahoo.com/nba/players', 
    ] 
    self.player_list= "%s" % player_list 


def parse(self, response): 
    example code 
    yield request 

मैं तर्कों की सूची में प्रवेश कर रहा हूँ यह सोचते हैं की तरह कुछ कमांड लाइन के माध्यम से सिर्फ एक तर्क के रूप में एक ही है तो मैं कुछ इस तरह दर्ज है


समस्या 2!

की तरह तो

scrapy crawl statsspider -a player_list="abc def,ghi jkl" 

मैं अब प्रत्येक "नाम" के माध्यम से जाना चाहते हैं तर्कों की एक अल्पविराम सीमांकित सूची inputting द्वारा पहला मुद्दा हल (यानी 'एबीसी डीईएफ़') के पहले प्रारंभिक खोजने के लिए अपने अंतिम नाम (इस मामले में 'डी')।

मैं कोड

array = [] 
for player_name in self.player_list: 
    array.append(player_name) 
print array 

और मैं परिणाम के साथ समाप्त का उपयोग [[ " '",' एक ',' बी ',' सी ', ... आदि]] क्यों अजगर नहीं है प्रत्येक 'नाम' (जैसे 'abc def' और 'ghi jkl') के लिए player_name असाइन करें? क्या कोई मुझे इस तर्क को समझा सकता है, और मैं शायद बाद में इसे करने का सही तरीका समझूंगा!

+0

बस इसे एक कोशिश है, यह Ubuntu पर त्रुटि नहीं देता है, scrapy संस्करण 0.18.4 दिया था, कौन-सा संस्करण आप चल रहे हैं ? –

+0

मुझे एहसास हुआ कि मैं कमांड लाइन के माध्यम से गलत तर्क पारित कर रहा था। नीचे @kev उत्तर देखें! लेकिन अब मैं एक नए मुद्दे के साथ अटक गया हूँ –

उत्तर

12

शैल तर्क स्ट्रिंग-आधारित हैं। आपको अपने कोड में तर्क का विश्लेषण करने की आवश्यकता है।

कमांड लाइन:

scrapy crawl statsspider -a player_list=xyz,abc 

अजगर कोड:

self.player_list = player_list.split(',') 
+0

हे @ केवी उत्तर के लिए धन्यवाद! अब मैं कमांड लाइन में सूचियों को पास करने के बारे में जानता हूं। यह काम करता है, लेकिन अब मुझे मेरे बारे में एक नई समस्या है जो पाइथन के तर्क को समझ में नहीं आता है। यदि आप "समस्या 2" संलग्न देख सकते हैं जिसे बहुत सराहना की जाएगी! –

+0

इस मुद्दे को हल नहीं किया! –

संबंधित मुद्दे