2

在庫のある製品の変更を特定するために、毎日Webサイトをクロールしています。

以前の日付と比較するためにこのデータを保存するにはどうすればよいですか?

データは次のようになります。

{'name': productname, 'url': "URL to product", "status": "In stock or not", "variants": ['3', '7', '9']}

約1000の製品があります。

このすべてのデータを1日1回保存する必要があるので、データを取得して以前の日付と比較し、商品の在庫切れ/在庫切れを確認できます。また、バリアントが削除/追加されているかどうかを確認する必要があります。

私はこれをどのように構成すべきかについて迷っています。データベース、複数のCSVファイル、テキストファイルを使用する必要がありますか?

助言がありますか?

4

2 に答える 2

1

これは特に大量のデータではないので、pickleパフォーマンスを特に気にしない限り (組み込みシステムで python を実行しているわけではありませんよね?)、これで十分です (そして最も簡単です)。

変更があったかどうかを確認するために必要なことは、前回のクロールからのデータを保持することだけです。そのため、これまでに 1000 個の製品を保存するだけで済みます。変更を検出すると、多くのクロールを実行する予定がある場合、またはシステムを長時間実行し続ける場合は、それをファイル (たとえば、データベース) に記録できます。

このアプローチでは、選択した変数の変更のみが保存されることに注意してください。後で他の変数の変更ログが必要になった場合、それを計算することはできません。

statusまた、値が 2 つしか取れない場合は、値をブール値に変換する価値があります。

于 2013-01-13T02:23:44.910 に答える
0

このような状況では、データをテキスト ファイルに保存して、ファイルを読み取ってデータを確認し、必要に応じて手動で編集できるようにするのが最善だと思います。それをデータベースに保存するのはやり過ぎです。

これは、名前、URL、ステータス、バリアントをフィールドとして 1 つの CSV ファイルに保存できます。各実行中に、CSV ファイルを読み取り、変更を探し、ファイルを更新できます。プロセスをデバッグするまでは、以前のバージョンのファイルを保存して、変更が発生したときに確認することもできます。

于 2013-01-13T08:43:45.437 に答える