1

私は1週間ほど前にプログラミングを学び始めたばかりで、彼らがやってくるのと同じくらい環境にやさしいです。私はコンピュータサイエンスのコースを受講したことがありませんが、非常に優れたプロのプログラマー(私のボーイフレンド)から指導を受けています。私自身の挑戦として、Craig's Listをふるいにかけ、つまみの爪を継続的にメールで送信するプログラムを作成する必要があります。Craig's Listへのリンクは、ヴィンテージやモダンなど、好きなものに基づいて仕様を設定していることを示しています。 Javaで書かれているのは、それが私が最終的に就職することを目指しているからです。私の質問は、このタスクをどのように実行するのかということです。もちろん、私はそれが私のために行われることを望んでいません。よろしくお願いします。

一番、

ポーラ

4

1 に答える 1

2

興味深い質問で、多くの潜在的な答えがあります。

問題を解決するためにどのように取り組むかを説明することで答えることを選択します。ここで、WebサービスであるCraigslistを使用するので、最初に行うことは、それがどのようなAPIを持っているかを調べることです。Googleで「craigslistapi」を検索すると、ヒットの最初の数ページは、実際にはCraigslistAPIがないことを示しています。これは、最近のWebサービスにとっては残念で少し驚くべきことであり、おそらく手を汚して実際のHTMLコードを削らなければならないことを意味します。これは、私がJavaで行うことではありませんが、JavaHTTPAPIを知らないことが一因かもしれないことを認めています。そこで、プログラムでできることの概要を説明します。

  1. プログラムへの入力は検索語であり、最初に1回だけ入力する必要があります。これがコマンドライン引数の使用目的であるため、各引数は検索語である可能性があります。複数の検索用語を提供するとはどういう意味ですか?おそらく、それらすべてが一致する必要があるか、少なくとも1つが一致する必要があります。あなたが決める。
  2. プログラムの興味深い部分は、以下を繰り返すメインループで構成されています。
    1. 必要なCraigslistの検索結果ページを取得します。@Dannyは、Apache HttpClientを検討することを提案しましたが、それは私には良いことだと思います。
    2. HTMLから必要な情報を抽出します。(これは難しい部分です。演習として残しておきます。これについてサポートが必要な場合は、新しい質問を開始してください。)
    3. うーん、ここでは、どの結果が新しく、どの結果がすでに表示されているかを知る必要があります。この情報は、プログラムを再起動しても保持されるはずなので、ファイルに保存することをお勧めします。その場合は、ここでファイルを開き、ファイルの各行について、各結果を調べて、ファイルに見つかった場合はその結果を削除します。たとえば、ファイルには行ごとに1つのURLを含めることができます。
    4. 次に、結果を自分にメールで送信してみます。@Dannyは、「JavaMail」というAPIをチェックすることを提案したので、それを最初に試します。(サムネイルを電子メールに添付するのは少し難しいので、最初はその部分をスキップすることをお勧めします。)電子メールの送信が成功しない場合は、新しい結果をファイルに保存することをスキップできます。次回代わりにそれらを含めることができるように、すでに表示されているURLのリスト(ボーイフレンドにtry..catchについて説明してもらってください)。成功した場合は、ファイルを開いて、最後に新しいURLを配置します。
    5. プログラムを使用したときに何が起こっているかについてフィードバックを得ることができるように、今行ったことに関する情報を画面に印刷したいと思うかもしれません。次に、しばらく(たとえば、1分間)寝てから、メインループの最初に戻って、もう一度やり直します。

これらの部分のいずれかについてサポートが必要な場合は、別の質問を開始してください。Javaプログラムの作成を開始する方法についてサポートが必要な場合は、Googleで初心者向けのチュートリアルを検索してください。コツをつかんだら、EclipseのようなIDEを試してみることをお勧めします。これは、さまざまな方法で役立つ複雑で洗練されたツールです。ただし、IDEは出入りします。基本的な言語ツール(この場合はjavaおよびjavacプログラム)のみを使用して特定の言語でプログラミングする方法を知っておくとよいでしょう。

とにかく、幸運、そして幸せなハッキング!:-)

于 2011-10-23T23:54:57.447 に答える