1

Windows Forms を使用して、選択した Web サイトから画像をスクレイピングするソフトウェアを C# で開発しました。

  1. 私が抱えている最初の問題は、監視している Web サイトのルック アンド フィールが絶えず変化しているため、コードを更新する必要があることです。探している div を分離するために XPath を使用するように切り替えましたが、div id も変更されます。ソフトウェアが読み取る各サイトの div xpath を含むテキスト ファイルを使用することを考えたので、コードを編集して再コンパイルする時間を節約できます。この問題を解決するより良い方法はありますか? 多分CodeDom?

  2. 第二に、すべての Web サイトが異なるフォーマットとエンコーディングを使用しているため、HtmlDocument、HtmlWebResponse、HtmlNodes などでコードの一部を書き直す必要があり、コードの半分近くを占めることになりました。追加のスクレイピングとページネーションが必要なものとそうでないものがあるため、それらをまとめることができませんでした。この問題を単純化する方法はありますか?

  3. 最後に、コード全体を 1 つのクラス ファイルにまとめ、約 600 行のコードを記述します。私が持っている唯一の方法は、backgroundworkers、UI イベント ハンドラー、各サイトのスクレイピング メソッド、および画像を保存する 1 つのメソッドです。コード全体を 1 つのクラスにまとめても問題ありませんか? Java で書いていた頃は、複数のクラスを利用してオブジェクトとして呼び出すことがよくありました。これにより、特定のセクションの変更が容易になりました。C# でも同じことができますか?

ソフトウェアを作成するためのより効率的なアプローチはありますか? 問題のクラスを直接変更できるように、サイトごとにクラスを作成することを考えていましたが、各クラスで多くの行が繰り返されることになります。それとも、全体を 1 つのクラス ファイルにまとめても問題ありませんか。

ありがとう。

PS: このソフトウェアは個人用ですが、良いプログラミングを学び、適用する良い機会だと思います。

4

0 に答える 0