icrawler が JSONDecodeError で 動作しないときの解決方法

python
追記
2021/02/01現在の icrawlerでTypeErrorが出て画像がダウンロードされない問題 について対策記事を書きましたので御覧ください。
 

 
現在の iclrawler はGoogleの仕様変更によりJSONパーサーでエラーが出るようになっています。
以下の手順で修正可能です。

 

エラーメッセージ

 


原因

ライブラリがGoogleの仕様変更に対応していない。

 

対策

google.pyを修正する。

 

場所はここになります。見つからなければ、google.pyで検索してください。
for macOS
/Users/USERNAME/Library/Python/3.7/lib/python/site-packages/icrawler/builtin/google.py

 

またはこのあたり
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/icrawler/builtin/google.py

 
Windowsの場合はこちら
C:\Users\USERNAME\AppData\Local\Programs\Python\Python36\Lib\site-packages\icrawler\builtin\google.py
 
 
ソースコードを検索して、 class GoogleParser(Parser): が記述されているところを探してください。
ここをごっそり入れ替えます。

 

Pythonはインデントが重要な意味を持ちますので、ペーストミスにご注意ください。
 

 

修正前

 

修正後

 
 

 

参考
Google Crawler is down #65

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です