問題タブ [scrapyd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
261 参照

python-2.7 - チェック500エラーをバイパスする

Scrapy フレームワークを使用してデータをクロールします。500 エラーが発生すると、クローラーが中断されます。そのため、Web コンテンツを解析する前に、利用可能なリンクを確認する必要があります。
私の問題を解決する方法はありますか?
どうもありがとう。

0 投票する
1 に答える
898 参照

database-connection - Scrapyd は 127.0.01:3306 ではなく独自のデータベース (mysql.db) に接続します

以下に示すようなスパイダーのスクレイピープロジェクトがあります。このスパイダーを次のコマンドで実行すると、スパイダーは機能します。scrapy crawl myspider

このプロジェクトを「scrapy deploy -p mysqlproject」でscrapydにデプロイし、スパイダーを次のようにスケジュールした後"curl http://localhost:6800/schedule.json -d project=mysql -d spider=myspider"

問題は、start_urls がデータベースから入力されていないことです。代わりに、sql コマンドは空の配列を返します。(私が推測する) ここに示すように、dbs_dir によって構成された独自の mysql.db に接続するため: http://doc.scrapy.org/en/0.14/topics/scrapyd.html#dbs-dir

mysql.db ではなく、scrapyd と mysql サーバー間の接続を確立するにはどうすればよいですか?

0 投票する
4 に答える
7124 参照

python - Scrapy スパイダーをプログラムでセットアップして起動する方法 (URL と設定)

私はスクレイピーを使用して動作するクローラーを作成しましたが、
今では Django webapp を介して制御したいと考えています。

  • 1つまたは複数を設定start_urls
  • 1つまたは複数を設定allowed_domains
  • 設定settings
  • スパイダーを起動する
  • スパイダーの停止/一時停止/再開
  • 実行中にいくつかの統計を取得する
  • スパイダーが完了した後、いくつかの統計を取得します。

最初は、 scrapydはこのために作成されたものだと思っていましたが、ドキュメントを読んだ後、「パッケージ化されたスパイダー」、別名「scrapy の卵」を管理できるデーモンのようです。そして、すべての設定 ( start_urlsallowed_domainssettings) は「スクレイピー エッグ」自体にハードコーディングする必要があります。何かを見逃していない限り、私の質問に対する解決策のようには見えません。

私はこの質問も見ました:クロールのためにスクレイピーに URL を与えるには? ; しかし、複数の URL を提供するための最良の答えは、著者 himeslf によって、いくつかの Python サブプロセスと複雑なシェル処理を含む「醜いハック」として認定されているため、ここで解決策を見つけることはできないと思います。また、 に対しては機能する可能性がありますが、またはstart_urlsは許可されていないようです。allowed_domainssettings

次に、scrapy webservicesを調べました。これは、統計を取得するための優れたソリューションのようです。ただし、実行中のスパイダーが必要であり、変更の手がかりはありませんsettings

この件に関していくつかの質問がありますが、どれも満足のいくものではないようです:

  • 0.7 以降、 scrapy は大幅に進化しているため、これは時代遅れのようです。
  • creating-a-generic-scrapy-spider 受け入れられた答えはありません。まだシェルパラメーターの調整について話し合っています。

Scrapy が本番環境で使用されていることは知っています。そして、scrapyd のようなツールは、これらの要件を処理する方法が確実にいくつかあることを示しています (scrapyd が扱っているスクレイピーの卵が手作業で生成されているとは思えません!)

どうもありがとうございました。

0 投票する
2 に答える
962 参照

python - Scrapyd:デプロイされたプロジェクトが使用できるライブラリと共通フォルダーを指定するにはどうすればよいですか?

Scrapydは、プロジェクトをeggifyでデプロイできるサービスです。しかし、私は問題に直面しています。MyScrapersという名前のプロジェクトがあり、そのスパイダークラスは次のようにimportステートメントを使用します。

from mylibs.common.my_base_spider import MyBaseSpider

my_base_spiderへのパスは/home/myprojectset/mylibs/common/my_base_spider

環境変数を設定しているPYTHONPATH=$HOME/myprojectset/ときに、scrapyコマンドを使用してMyScrapersを実行できます:scrapycrawlMyScrapers。

しかし、次のコマンドを使用してMyScrapersをデプロイするためにscrapydを使用すると、次のコマンドが表示されます。

サーバーの応答(200):{"ステータス": "エラー"、 "メッセージ": "ImportError:mylibs.common.my_base_spiderという名前のモジュールがありません"}

これらのライブラリを使用するためにデプロイされたプロジェクトを作成する方法を教えてください。

0 投票する
2 に答える
1349 参照

python - 複数のscrapydサーバーを実行する方法は?

Scrapyd Serviceに関するドキュメントを探していましたが、非常にスリムです。同じスケジュールキューを指す複数のScrapydサーバーを設定する方法を誰かが知っているかどうか疑問に思っていましたか?

0 投票する
0 に答える
657 参照

python - os.systemまたはsubprocess.callを使用してscrapyコマンドを実行する

Apache(XAMPP)で実行されているWebベースのインターフェイスを備えたScrapyプロジェクトがあります。これにより、ユーザーはスパイダーを作成、変更、スケジュールでき、ポート6800でscrapydを呼び出して、保留中/実行中/終了したスパイダーを取得できます。それはすべて1つの例外を除いて見事に機能します...scrapydが実行されていない場合、私は明らかにスパイダーをスケジュールしたり、scrapydから保留中/実行中/終了したスパイダーを取得することはできません。

私が現在持っているのは、http://localhost:6800それが失敗した場合に、サーバーが現在実行されておらず、サーバーを起動するためのリンクがあることを示すメッセージを表示する場所への呼び出しです。リンクをクリックすると、Pythonページが呼び出され、os.systemが呼び出されてサーバーが起動します。私はPythonにかなり慣れていませんが、OS関数を理解しようとしています。また、Stack Overflowで見つけたいくつかの異なるメソッド(subprocess.callやos.popen / popen2 /など)を試しました。 popen3)しかし、どれも機能していないようです。

scrapy server私はあなたがscrapyプロジェクトディレクトリにいる必要があることを使用してscrapydを開始することを知っているので、私もそれを使用して呼び出してみましたtwistd -ny extras/scrapyd.tac

スクレイピーコマンドを実行するか、Pythonを介してtwistedを呼び出すための最良の方法は何ですか?

0 投票する
1 に答える
2568 参照

python - スクレイピープロジェクトをデプロイする

私はscrapydでscrapyプロジェクトを展開しようとしています. 使用してプロジェクトを正常に実行できます

これは私が行ったステップバイステップです:

1/私は走る

2/でscrapydをインストール

3/ /var/www/api/scrapy/dirbot (http://domain.com/api/scrapy/dirbot) にスクレイピー プロジェクトがあります。私はscrapy.cfgを編集します

4/ deploy コマンドでテストします

5/しかし、コマンドを使用すると

※ニシキヘビの卵とは何かわかりません。それについて例を挙げていただけますか?持っていたかどうかはわかりません。おそらくそのファイルは /var/www/api/scrapy/dirbot/setup.py ですか?

* プロジェクトを展開するにはどうすればよいですか。私が間違ったことをしたのか、それともステップを逃したのか正確にはわかりませんか?

ありがとう

0 投票する
3 に答える
2436 参照

python - Scrapyd deploy "属性エラー:NoneTypeオブジェクトに属性'module_name'がありません"

Scrapyを使用してクローラープロジェクトをScrapydインスタンスにデプロイしようとしていますが、commendを呼び出すと次のエラーが返されます。

サーバーの応答(200):{"status": "error"、 "message": "AttributeError:'NoneType'オブジェクトに属性'module_name'"}がありません

デプロイ中に送信されたPythoneggをビルドするためのsetup.pyは次のとおりです。

私のscrapy.cfg:

これは卵の作り方と関係があるように感じますが、よくわかりません。オブジェクトであるはずの属性にアクセスすると、Pythonがこのようなエラーをスローすることは知っていますが、何らかの理由で実際にはnullです。また、「module_name」属性を持つものや、自分のコードでそれを参照しようとするものはありません。スクレイプからクローラーをローカルで実行することは問題なく機能しますが、eggをデプロイすることはできません。

0 投票する
2 に答える
3144 参照

sql-server - Scrapy/PythonおよびSQLServer

Scrapyを使用してWebサイトからデータを取得し、そのデータをMicrosoft SQL Serverデータベースに保存することは可能ですか?

はいの場合、これが行われている例はありますか?それは主にPythonの問題ですか?つまり、SQL Serverデータベースに保存されているPythonのコードを見つけた場合、Scrapyは同じことを実行できますか?

0 投票する
1 に答える
4096 参照

scrapy - Scrapyd で HttpProxyMiddleware を有効にする

スクレイピーのドキュメントを読んだ後、HttpProxyMiddleware がデフォルトで有効になっていると思いました。しかし、scrapyd の Web サービス インターフェイスを介してスパイダーを起動すると、HttpProxyMiddleware が有効になりません。次の出力が表示されます。

HttpProxyMiddleware が有効になっていないことに注意してください。Scrapyd で有効にするにはどうすればよいですか? どんな助けでも大歓迎です。

私のscrapy.cfg

私は次のsettings.pyを持っています

よろしく、

プランシュ