-1
в scrapy
Есть ли способ запустить функцию cmdline.execute()
в цикле for
? Ниже приведен пример. При попытке выполнить сценарий останавливается после первой итерации for link in links
, указывая только INFO: Closing spider (finished)
. Как я могу заставить скрипт вернуться в цикл без нарушения?Как сделать cmdline in for loop не ломаться после первого Spider?
Execute.py:
from scrapy import cmdline
links = ["http://quotes.toscrape.com/page/1/", "http://quotes.toscrape.com/page/2/"]
for link in links:
command = "scrapy crawl quotes1 -a source_url="
command += link
cmdline.execute(command.split())
Spider.py
import scrapy
class QuotesSpiderS(scrapy.Spider):
name = "quotes1"
def start_requests(self):
urls = []
urls.append("%s" % self.source_url)
print(urls)
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'quotes-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename)
Спасибо за ваш ответ. Однако код не работает. –
Я обновил ответ. Возможно, это то, что вы ищете. –