Tạo scraper cho nhóm tưởng tượng. Tìm cách chuyển danh sách tên người chơi làm đối số và sau đó cho mỗi player_name trong player_list hãy chạy mã phân tích cú pháp.Phế liệu: Làm cách nào để chuyển danh sách các đối số thông qua dấu nhắc lệnh tới con nhện?
Tôi hiện đang có một cái gì đó như thế này
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
Tôi giả định bước vào một danh sách các đối số là giống như chỉ là một lập luận thông qua các dòng lệnh vì vậy tôi nhập một cái gì đó như thế này:
scrapy crawl statsspider -a player_list=['xyz','abc']
Bài 2!
Giải quyết được vấn đề đầu tiên bằng cách nhập một dấu phẩy phân cách danh sách các đối số như vậy
scrapy crawl statsspider -a player_list="abc def,ghi jkl"
Tôi bây giờ muốn đi qua mỗi "tên" (tức là 'abc def') để tìm ra đầu tiên ban đầu của họ họ (trong trường hợp này là 'd').
tôi sử dụng mã
array = []
for player_name in self.player_list:
array.append(player_name)
print array
Và tôi kết thúc với kết quả [[ "'", 'a', 'b', 'c', ... vv]] Tại sao trăn không gán player_name cho mỗi 'tên' (ví dụ 'abc def' và 'write jkl')? ai đó có thể giải thích logic này cho tôi, và tôi có lẽ sẽ hiểu đúng cách để làm điều đó sau đó!
chỉ cho nó một thử, nó không cung cấp cho các lỗi trên Ubuntu, scrapy phiên bản 0.18.4, những phiên bản bạn có đang chạy ? –
Tôi nhận ra mình đã vượt qua sai số arg thông qua dòng lệnh. Xem câu trả lời @kev dưới đây! Nhưng bây giờ tôi đang mắc kẹt với một vấn đề mới –