私は10k +ページに行き、そこからデータをスクレイプするスクレイパーに取り組んできました。閉じる/終了してもセレンはメモリを解放しません
問題は、時間の経過と共にメモリ消費が大幅に増加することです。したがって、スクラップ終了時にのみドライバインスタンスを閉じる代わりにこれを克服するために、スクレイパーは更新され、すべてのページがロードされ、データが抽出された後にインスタンスを閉じます。
しかし、何らかの理由でRAMメモリにデータが残っています。
PhantomJSを使用しようとしましたが、何らかの理由でデータが正しく読み込まれませんでした。 私はまた、Firefoxのキャッシュを100MBに制限するためのスクレイパーの初期バージョンで試してみましたが、これもうまくいきませんでした。
注:chromedriverとfirefoxの両方のインスタンスでテストを実行します。残念ながら、セレンの代わりにリクエストや機械化などのライブラリを使用することはできません。
私は今一週間これを把握しようとしているので、何か助けに感謝します。ありがとう。
ドライバがメモリアップを充填されたようにはい、それはそうです。私はセレンが使われる5つの機能を持っています。私はScrapyと一緒にセレンを使用します。だから、私はちょうど新しいドライバのインスタンスをインスタンス化するそれらの関数では、関数のニアエンドで私はdriver.quit()またはdriver.close()を呼び出します。余分な参照を保持するために、私は私が行うことを確認していない。私はページを読み込むためにセレンを使用し、一旦ロードすると、page_sourceをScrapyセレクターに入れます。私はScrapyにメモリリークはありません。 – ScrapyNoob
[memory_profiler](https://pypi.python.org/pypi/memory_profiler)を使用して、行ごとのメモリ使用量をチェックすることができます。これは、どのセクションがあなたの記憶を消費しているかをよりよく理解するのに役立ちます。そこに何かを見つけることができない場合は、ここにサンプル関数を投稿すると役に立つかもしれません。 – abrarisme