私はスクレイピーを使用して動作するクローラーを作成しましたが、
今では Django webapp を介して制御したいと考えています。
- 1つまたは複数を設定
start_urls - 1つまたは複数を設定
allowed_domains - 設定
settings値 - スパイダーを起動する
- スパイダーの停止/一時停止/再開
- 実行中にいくつかの統計を取得する
- スパイダーが完了した後、いくつかの統計を取得します。
最初は、 scrapydはこのために作成されたものだと思っていましたが、ドキュメントを読んだ後、「パッケージ化されたスパイダー」、別名「scrapy の卵」を管理できるデーモンのようです。そして、すべての設定 ( start_urls、allowed_domains、settings) は「スクレイピー エッグ」自体にハードコーディングする必要があります。何かを見逃していない限り、私の質問に対する解決策のようには見えません。
私はこの質問も見ました:クロールのためにスクレイピーに URL を与えるには? ; しかし、複数の URL を提供するための最良の答えは、著者 himeslf によって、いくつかの Python サブプロセスと複雑なシェル処理を含む「醜いハック」として認定されているため、ここで解決策を見つけることはできないと思います。また、 に対しては機能する可能性がありますが、またはstart_urlsは許可されていないようです。allowed_domainssettings
次に、scrapy webservicesを調べました。これは、統計を取得するための優れたソリューションのようです。ただし、実行中のスパイダーが必要であり、変更の手がかりはありませんsettings
この件に関していくつかの質問がありますが、どれも満足のいくものではないようです:
- 0.7 以降、 scrapy は大幅に進化しているため、これは時代遅れのようです。
- creating-a-generic-scrapy-spider 受け入れられた答えはありません。まだシェルパラメーターの調整について話し合っています。
Scrapy が本番環境で使用されていることは知っています。そして、scrapyd のようなツールは、これらの要件を処理する方法が確実にいくつかあることを示しています (scrapyd が扱っているスクレイピーの卵が手作業で生成されているとは思えません!)
どうもありがとうございました。