Tworzenie skrobaka dla zespołu fantasy. Poszukuje sposobu przekazania listy nazw graczy jako argumentów, a następnie dla każdego player_name na liście player_list uruchamia kod parsujący.Scrapy: Jak przekazywać listę argumentów za pomocą wiersza polecenia do pająka?
Obecnie mam coś takiego
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
Jestem zakładając, wprowadzając listę argumentów jest taka sama jak jednego argumentu za pomocą wiersza polecenia więc wpisać coś takiego:
scrapy crawl statsspider -a player_list=['xyz','abc']
Problem 2!
rozwiązać pierwszą kwestię, wprowadzając do rozdzielany przecinkami listę argumentów jak tak
scrapy crawl statsspider -a player_list="abc def,ghi jkl"
I teraz chce przejść przez każdego „name” (czyli „abc def”), aby znaleźć pierwsze litery swoich nazwisko (w tym przypadku "d").
użyć kodu
array = []
for player_name in self.player_list:
array.append(player_name)
print array
I skończyć z wynikiem [[ "'", 'a', 'b', 'c', ... etc]] Dlaczego nie pyton przypisz nazwę gracza do każdego "imienia" (np. "abc def" i "ghi jkl")? Czy ktoś może wyjaśnić mi tę logikę i prawdopodobnie zrozumiem właściwą drogę, aby to zrobić później!
prostu spróbowaliśmy, nie daje błąd na Ubuntu, scrapy wersji 0.18.4, co wersja są uruchomione ? –
Zrozumiałem, że przekazywałem błędne argumenty za pośrednictwem wiersza poleceń. Zobacz odpowiedź @kev poniżej! Ale teraz utknąłem z nowym numerem –