光のカナダ留学blog

30歳で会社を退職。現在カナダ留学中です。

【Scrapy】Syntaxエラーdef write(self, data, async=False)とその対処法

スポンサーリンク

ScrapyでのSyntaxErrorとその対処法についてです。(Python3.7.0、Scrapy1.5.0)

ScrapyでSpiderファイルを実行しようとした際に下記エラーが発生。

f:id:hikaruryugaku:20180923090939p:plain

def write(self, data, async=False):
SyntaxError: invalid syntax

下記リンクによるとScrapy(のTwistedライブラリ)が現状Python3.7に対応していないことが問題のようで、下記リンクを参考に次のコマンドを実施。

@joshspivey async keyword is used in Twisted, not in Scrapy. @lopuhin worked with Twisted maintainers to fix it in Twisted, so Scrapy will work with Python 3.7 after Twisted release a new version with a fix. Also, we've worked around it in Scrapy itself, so that Scrapy works with the current Twisted release (disabling manhole), this will be available in a next Scrapy release.

引用:https://github.com/scrapy/scrapy/issues/3143#issuecomment-368559739

pip install git+https://github.com/scrapy/scrapy@master --no-dependencies --upgrade

エラー無く実行できるようになりました。なお本問題はScrapyの1.6では対応される予定のようです。

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-