問題タブ [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 投票する
2 に答える
1045 参照

python - 404: Scrapy を使用してスクレイピングしているときに Web サイトによってブロックされないようにする方法はありますか

Scrapy を使用して、約 70k アイテムの Web サイトをスクレイピングしようとしていました。しかし、約200個のアイテムをスクレイピングした後は毎回、残りのエラーがポップアップします:

私のスパイダーが Web サイトによってブロックされたためだと思います。ここで提案されているランダムなユーザー エージェントを使用してみましたが、問題はまったく解決しません。良い提案はありますか?

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

postgresql - Twisted (Scrapy) と Postgres

Scrapy (別名 Twisted) と Postgres をデータベースとして使用しています。

接続がいっぱいになったように見えた後、スクリプトが動かなくなりました。これをこのクエリSELECT * FROM pg_stat_activity;で確認したところ、Postgres に接続プールがないことが原因であることがわかりました。

txpostgresPGBouncerについて読みましたが、残念ながら Bouncer はオプションではありません。この問題を回避するために他に何ができますか?

これまでのところ、次のパイプラインを使用しています。

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

python - Scrapy - クローラーが終了したときに新しいクロール プロセスを呼び出す

2 つの start_urls xxx.com/LISTA と xxx/com/LISTB から見つかった xxx.com/a、xxx.com/b などの URL を検索します。

このクローラーが終了したら、ページ xxx.com/x_in_database および xxx.com/y_in_database も追加でクロールしたいと考えています。これらの URL は、データベース内の以前のクロールで既にクロールされています (したがって、現在利用可能です)。ただし、現在のクローラーがクロールしなかった場合に限ります。 LISTA と LISTB で既にそれらを見つけます

それを行う最良の方法は何ですか?新しいクロールを開始することはできず、scrapy.signals.spider_closed(spider, reason)接続を閉じる、リソースを解放するなどの他のルーチン操作のみを行うようです

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

python-2.7 - スクレイピー イメージ パイプラインによってダウンロードされたイメージ サイズの拡大

継承された ImagesPipeline クラスから、pipeline.py の convert_image メソッドを上書きしようとしていますが、期待どおりに動作しません。

実際には、ダウンロードした画像を自分の要件に合わせてアップスケールしようとしています: 700px ですが、ダウンロードした画像は元のサイズのままです。

情報については、設定 IMAGES_THUMBS で使用していないため、サイズは None および IMAGES_EXPIRES = 0 にする必要があります

この要件を満たしていない場合に、ダウンロードした画像を直接 700x700 の最小変換に変換する良い解決策がある場合。

これが私のコードです:

これが、オーバーライドしようとしている元のパイプライン イメージ クラスです: github

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

python - 解析する Scrapy パイプライン

スクレイピー データを Parse Backend に入れるパイプラインを作成しました

解析 = 'api.parse.com' ポート = 443

しかし、Parse にデータを投稿する正しい方法が見つかりません。毎回、Parse DB に未定義のオブジェクトが作成されるためです。

エラーの例:

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

scrapy - 複数のスパイダーがアイテムを同じファイルに書き込むscrapyd

複数のスパイダーを同時に実行している Scrapyd サーバーがあり、schedule.json エンドポイントを使用してスパイダーを 1 つずつ起動します。すべてのスパイダーは、パイプラインを使用して共通ファイルにコンテンツを書き込んでいます

スパイダーが実行されると、データが正しく収集され、アイテムがファイル XXXX.jl に保存され、スパイダーが正しく動作することがわかりますが、クロールされたコンテンツは共通ファイルに反映されません。スパイダーはうまく機能しているように見えますが、パイプラインはうまく機能しておらず、共通ファイルにデータを収集していません。

また、同時にファイルに書き込みを行っているのは 1 つのスパイダーだけであることに気付きました。