scrapyを実行すると、次のエラーが出てスクレイピングができません。
ValueError: signal only works in main thread
コードは次の通りです。
getarticle.py
class GetarticleSpider(scrapy.Spider): name = 'getarticle' allowed_domains = ['取得するページのドメイン'] start_urls = ['取得するページのURL'] def parse(self, response): for quote in response.css('div.block-standard'): item = ArticleItem() item['url'] = quote.css('a::attr(href)').extract_first() item['title'] = quote.css('h2.block-entry-title a::text').extract_first() yield item def start(): process = CrawlerProcess(get_project_settings()) process_article = process.crawl(GetarticleSpider) process.start()
views.py
def crawl(request): Articles = start()
django のAPIでcrawl関数を実行してスクレイピングをしたいと思うのですが、最初に書いたエラーが出て進みません。
ちなにみ、このまま
scrapy crawl getarticle
を実行するとスクレイピングできますし、
def start()を消して
python getarticle.py
で ファイルを実行してもスクレイピングは実行されます
どうすれば上記のエラーを回避できるのでしょうか。
ドキュメントにできるっぽいこと書いてあるのですが、
かなり考えましたがまったくわかりません。
よろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。