問題タブ [scrapy-pipeline]

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 に答える
2761 参照

python - Scrapy でパイプラインとミドルウェアからデータベース接続を閉じる

カスタム ミドルウェアとカスタム パイプラインを使用してエントリをチェックし、Postgres DB に保存する Scrapy プロジェクトがあります。ミドルウェアは次のようになります。

パイプラインは似ています。

問題なく動作しますが、スパイダーが終了したときにこれらのデータベース接続をきれいに閉じる方法が見つからず、イライラします。

誰もそれを行う方法を知っていますか?

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

python - スクレイピーでのcsvエクスポートのためにfile_name引数をパイプラインに渡します

コマンドラインから引数 (-a FILE_NAME="stuff") を取得し、pipelines.py ファイルの CSVWriterPipeLine で作成されたファイルに適用するには、scrapy が必要です。(パイプライン.pyを使用した理由は、組み込みのエクスポーターがデータを繰り返し、出力ファイルでヘッダーを繰り返していたためです。同じコードですが、パイプラインに書き込むと修正されました。)

に見られるように、scrapy.utils.project import get_project_settings から試しました

アイテムパイプラインからスクレイピー設定にアクセスする方法

コマンドラインからファイル名を変更できませんでした。

ページにある@avaleskeのソリューションも実装しようとしましたが、これは具体的にこれに対処しているためですが、彼が話しているコードをスクレイピーフォルダーのどこに配置すればよいかわかりません。

ヘルプ?

settings.py:

パイプライン.py:

スパイダー.py:

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

python - スクレイピングされたアイテムとファイルを保存するとき、Scrapy は出力 csv ファイルに空の行を挿入します

Scrapy (バージョン 1.0.3) スパイダーを使用して、Web ページからいくつかのデータを抽出し、次のようにファイルをダウンロードします (簡略化):

pipelines.py では、FilePipeline をオーバーライドしてファイルの名前を変更するだけです。

私が持っているitems.pyで:

私が持っているsettings.pyで:

出力csvファイルで、次のようなものが得られます。

空の行 (カンマのみ) はダウンロードされたファイルを表しているようです。そのような行が出力 csv ファイルに含まれないようにする方法を知りたい、またはアドバイスを得たいです。(ファイルはフォルダーに保存されます)。
Scrapy の設定で FEED_STORE_EMPTY (デフォルトでは false です。つまり、空のフィードをエクスポートするべきではありません) について知りましたが、これは私が推測するファイルには関係ありません。
これはパイプラインで何かをしなければならないと感じていますが、その方法がわかりません。
任意の助けをいただければ幸いです

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

scrapy - Scrapy: パイプラインを使用して不要な非 ASCII コードを置き換えます

Scrapy の結果から、1 つの不要な非 ASCII コード\u2013(別名character(150)またはen dash) がu'Director/Senior Director \u2013 Pathology'. \u2013パイプラインを使用して定期的に削除しようとしています,。しかし、次のコードは機能しませんでした。エラーメッセージも報告されません。

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

mongodb - pymongoとscrapyでMongoDBにIDが存在するかどうかを確認する

データをMongoDBデータベースに送信するscrapyを使用してスパイダーをセットアップしました。id が存在するかどうかを確認して、存在する場合は特定のキーに $addToSet できるようにしたい (そうしないと、_id が既に存在するため、Mongo は挿入を拒否します)。

これは私のpipelines.pyです:

私のitems.pyは次のようになります:

そして私のクモは次のようになります:

次の行で、pipelines.py で構文エラーが発生します。

トレースバックは次のとおりです。

これが機能するのに本当に近づいているような気がするので、私は髪を引っ張っています。robomongo で、このクエリを実行すると:

db.getCollection('logfile').find({'_id': 'Jim'})

ジムのドキュメントが表示されます。私がクロールしている現在のページの _id を取得するために、 find() の中に何を入れればよいのか、一生わかりません。

どんな助けでも大歓迎です。

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

python - mysql.connector を使用したスクレイピー パイプライン エラー

私は完全に迷っています。これが私のパイプラインです。実行すると、次のエラーが表示されます

コメント付きのコードからわかるように、いくつかの方法を試しました。最初は、例で見たとおりに実行していましたが、上記で Name = item として定義するのではなく、VALUES 行に (item['StoreName']) を入力すると、sadi item が定義されていないというエラーが発生しました。 ['StoreName'] mqsql.org Web サイトからインストールした mySQL.connector を使用しています。前もって感謝します

編集。これが私の新しいコードです

`