Fantezi takım için bir kazıyıcı oluşturma. Oyuncu isimlerinin bir listesini argüman olarak iletmenin bir yolunu aramak ve daha sonra player_list içindeki her bir player_name için ayrıştırma kodunu çalıştırır.Scrapy: Örümcek komutunu kullanarak argüman listesini nasıl iletebilirim?
scrapy crawl statsspider -a player_list=['xyz','abc']
:
Şu anda böyle bir şey girmek yüzden bağımsız değişkenlerin bir listesini girerek tahmin ediyorum bu
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
gibi bir şey komut satırı sadece bir argüman olarak aynıdır sahip
Sorun 2!
Şimdi her "isim" üzerinden gitmek istiyorum böylece
scrapy crawl statsspider -a player_list="abc def,ghi jkl"
gibi argümanların virgülle ayrılmış bir listesini girerek birinci sorunu çözüldü (yani 'abc def') ilk baş harfini bulmak için onların soyadı (bu durumda 'd').
Ben
array = []
for player_name in self.player_list:
array.append(player_name)
print array
Ve sonuçla sona kodu kullanabilirsiniz [[ "'", 'a', 'b', 'c', ... vb]] Neden piton değil her bir 'isim' için player_name atayın (örneğin 'abc def' ve 'ghi jkl')? Birisi bana bu mantığı açıklayabilir ve muhtemelen daha sonra bunu yapmak için doğru yolu anlayacağım!
sadece bir deneyin, bu Ubuntu üzerinde hata vermez, scrapy versiyonu 0.18.4 verdi hangi sürümde çalışan ? –
Komut satırında hataların yanlış geçtiğini anladım. Aşağıda Kev cevabını görün! Ama şimdi yeni bir sorunla karşılaştım –