Привет, у меня есть проект scrapy, в котором один из пауков открывает большой текстовый файл для некоторой обработки
import scrapy
class ToScrapeCSSSpider(scrapy.Spider):
name = "toscrape-css"
with open('path/to/myfile.txt', 'r') as f:
start_urls = [f.readlines()]
def parse(self, response):
for quote in response.css("div.quote"):
yield {
'text': quote.css("span.text::text").extract_first(),
'author': quote.css("small.author::text").extract_first(),
'tags': quote.css("div.tags > a.tag::text").extract()
}
next_page_url = response.css("li.next > a::attr(href)").extract_first()
if next_page_url is not None:
yield scrapy.Request(response.urljoin(next_page_url))
После создания яйца и его развертывания с использованием scrapyd-deploy яйца копируются в конфигурацию scrapdкаталог, когда задание запланировано, оно не запускается, так как файл отсутствует в каталоге конфигурации scrapyd. Копирование файла решает проблему.
Есть ли какой-нибудь элегантный способ связать этот файл данных внутри яйца, чтобы мы моглиВам больше не нужно копировать текстовый файл во время выполнения программы?