У меня есть несколько пауков, которые я запускаю из скрипта core.py, например:
# ----- This part launch all given spiders ----- #
process = CrawlerProcess(get_project_settings())
process.crawl(CarrefourSpider)
process.crawl(ParapharmaSpider)
process.crawl(EbaySpider)
process.start() # the script will block here until the crawling is finished
Однако каждый паук ссылается на файл: он не работал без указания абсолютного пути, поэтому сейчас он выглядит так:
class CarrefourSpider(scrapy.Spider):
name = "carrefour_bot"
def start_requests(self):
base_url="https://new.carrefour.fr/s?q="
test_file = open(r"C:\Users\User\scrapybot\scrapybot\spiders\files\to_collect_carrefour.csv", "r")
reader = csv.reader(test_file)
for row in reader:
if row:
url = row[0]
absolute_url = base_url+url
print(absolute_url)
yield scrapy.Request(absolute_url, meta={'dont_redirect': True, "handle_httpstatus_list": [302, 301, 502]}, callback=self.parse)
Дело в том, что я не буду единственным человеком, использующим этот сценарий. Я хотел бы знать, есть ли способ указать путь перед запуском сценария core.py вместо изменения пути в каждом сценарии. Или просто идеи, чтобы сделать его более гибким:]
Пожалуйста, дайте мне знать, если мне не ясно! Спасибо за вашу помощь