AWSラムダを使用してウェブサイトをスクラップします。 クローラコードはPythonで、Pipによって提供されるScrapyライブラリを使用しています。AWSラムダ - 治療ライブラリが機能していません(名前証明書をインポートできません)。
公共アマゾンのLinux AMIバージョンで、私は依存関係のzipファイルを作成する必要がありましたラムダ関数(ここでの唯一のscrapy)を実行するには - ラムダを追加し、their documentation hereあたりとして、AMZN-AMI-HVM-2017.03.1.20170812-x86_64版-GP2ラムダ関数を作成するためにアップロードします。
さて、私はラムダ関数を呼び出すとき、それは私に次のエラーを与える:
cannot import name certificate_transparency: ImportError
Traceback (most recent call last):
File "/var/task/my_lambda_function.py", line 120, in my_lambda_handler
return get_data_from_scrapy(username, password)
File "/var/task/my_lambda_function.py", line 104, in get_data_from_scrapy
process.crawl(MyScrapyFunction)
File "/var/task/scrapy/crawler.py", line 167, in crawl
crawler = self.create_crawler(crawler_or_spidercls)
File "/var/task/scrapy/crawler.py", line 195, in create_crawler
return self._create_crawler(crawler_or_spidercls)
File "/var/task/scrapy/crawler.py", line 200, in _create_crawler
return Crawler(spidercls, self.settings)
File "/var/task/scrapy/crawler.py", line 52, in __init__
self.extensions = ExtensionManager.from_crawler(self)
File "/var/task/scrapy/middleware.py", line 58, in from_crawler
return cls.from_settings(crawler.settings, crawler)
File "/var/task/scrapy/middleware.py", line 34, in from_settings
mwcls = load_object(clspath)
File "/var/task/scrapy/utils/misc.py", line 44, in load_object
mod = import_module(module)
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/var/task/scrapy/extensions/memusage.py", line 16, in <module>
from scrapy.mail import MailSender
File "/var/task/scrapy/mail.py", line 22, in <module>
from twisted.internet import defer, reactor, ssl
File "/var/task/twisted/internet/ssl.py", line 59, in <module>
from OpenSSL import SSL
File "/var/task/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import crypto, SSL
File "/var/task/OpenSSL/crypto.py", line 12, in <module>
from cryptography import x509
File "/var/task/cryptography/x509/__init__.py", line 7, in <module>
from cryptography.x509 import certificate_transparency
ImportError: cannot import name certificate_transparency
後は、依存関係/ライブラリのバージョンです(すべてが最新です)私が使用していること:
- を9.0.1
- Scrapy == 1.4.0
- pyOpenSSLピップ== 17.5.0
- lxmlのを== 4.1.1
- 暗号化== 2.1.4
助けていただければ幸いです。前もって感謝します。
ウェブサイトをスクラップして、それを何らかのデータベースにダンプしたかっただけです。私はラムダを掻き取りに使うべきではないと私はあなたに同意し、私は今それを使用していません。しかし、Amazon Linux AMIでコンパイルされているすべての依存関係を満たしてもLambdaがうまくいかなかったのはなぜだろうか。 –