問題タブ [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.
python - 404: Scrapy を使用してスクレイピングしているときに Web サイトによってブロックされないようにする方法はありますか
Scrapy を使用して、約 70k アイテムの Web サイトをスクレイピングしようとしていました。しかし、約200個のアイテムをスクレイピングした後は毎回、残りのエラーがポップアップします:
私のスパイダーが Web サイトによってブロックされたためだと思います。ここで提案されているランダムなユーザー エージェントを使用してみましたが、問題はまったく解決しません。良い提案はありますか?
postgresql - Twisted (Scrapy) と Postgres
Scrapy (別名 Twisted) と Postgres をデータベースとして使用しています。
接続がいっぱいになったように見えた後、スクリプトが動かなくなりました。これをこのクエリSELECT * FROM pg_stat_activity;
で確認したところ、Postgres に接続プールがないことが原因であることがわかりました。
txpostgresとPGBouncerについて読みましたが、残念ながら Bouncer はオプションではありません。この問題を回避するために他に何ができますか?
これまでのところ、次のパイプラインを使用しています。
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)
接続を閉じる、リソースを解放するなどの他のルーチン操作のみを行うようです
python-2.7 - スクレイピー イメージ パイプラインによってダウンロードされたイメージ サイズの拡大
継承された ImagesPipeline クラスから、pipeline.py の convert_image メソッドを上書きしようとしていますが、期待どおりに動作しません。
実際には、ダウンロードした画像を自分の要件に合わせてアップスケールしようとしています: 700px ですが、ダウンロードした画像は元のサイズのままです。
情報については、設定 IMAGES_THUMBS で使用していないため、サイズは None および IMAGES_EXPIRES = 0 にする必要があります
この要件を満たしていない場合に、ダウンロードした画像を直接 700x700 の最小変換に変換する良い解決策がある場合。
これが私のコードです:
これが、オーバーライドしようとしている元のパイプライン イメージ クラスです: github
python - 解析する Scrapy パイプライン
スクレイピー データを Parse Backend に入れるパイプラインを作成しました
解析 = 'api.parse.com' ポート = 443
しかし、Parse にデータを投稿する正しい方法が見つかりません。毎回、Parse DB に未定義のオブジェクトが作成されるためです。
エラーの例:
scrapy - 複数のスパイダーがアイテムを同じファイルに書き込むscrapyd
複数のスパイダーを同時に実行している Scrapyd サーバーがあり、schedule.json エンドポイントを使用してスパイダーを 1 つずつ起動します。すべてのスパイダーは、パイプラインを使用して共通ファイルにコンテンツを書き込んでいます
スパイダーが実行されると、データが正しく収集され、アイテムがファイル XXXX.jl に保存され、スパイダーが正しく動作することがわかりますが、クロールされたコンテンツは共通ファイルに反映されません。スパイダーはうまく機能しているように見えますが、パイプラインはうまく機能しておらず、共通ファイルにデータを収集していません。
また、同時にファイルに書き込みを行っているのは 1 つのスパイダーだけであることに気付きました。