-1
をscrapy
にすると、for
ループでcmdline.execute()
関数を実行する方法はありますか?以下はその例です。実行しようとすると、スクリプトはの最初の反復の後に停止し、INFO: Closing spider (finished)
を示します。スクリプトを壊さずにループに戻すにはどうすればよいですか?最初のスパイダーの後にforループが壊れないようにcmdlineを作成するには?
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)
ご回答ありがとうございます。しかし、コードは動作しません。 –
私は答えを更新しました。たぶんそれはあなたが探しているものです。 –