有趣的问题,有很多潜在的答案。
我将选择通过描述我将如何尝试解决问题来回答。现在,由于您将使用 Web 服务 Craigslist,所以我要做的第一件事就是找出它有什么样的 API。在谷歌搜索“craigslist api”,前几页的点击表明实际上没有 Craigslist API。这对于如今的 Web 服务来说是令人失望和令人惊讶的,这意味着您可能不得不亲自动手并抓取实际的 HTML 代码。这不是我在 Java 中真正要做的事情,尽管我承认这可能部分是因为我不了解 Java HTTP API。因此,我将简要介绍该程序可以做什么:
- 程序的输入是搜索词,它们只需要在开始时提供一次。这就是命令行参数的用途,因此每个参数都可以是一个搜索词。提供多个搜索词是什么意思?可能要么他们都必须匹配,要么至少有一个必须匹配。你决定。
- 该程序的有趣部分包括一个主循环,它重复以下内容:
- 获取您需要的 Craigslist 搜索结果页面。@Danny 建议您查看 Apache HttpClient,这对我来说听起来不错。
- 从 HTML 中提取您需要的信息。(这是最难的部分,我将把它留作练习——如果您需要帮助,请随时提出一个新问题。)
- 嗯,在这里您需要知道哪些结果是新的,哪些是您已经看到的。由于即使您重新启动程序,此信息也应该保留,因此您可能希望将其存储在文件中。在这种情况下,您将在此处打开文件,并针对文件中的每一行,检查每个结果,如果在文件中找到该结果,则将其删除。例如,该文件可以每行包含一个 URL。
- 现在您将尝试将结果邮寄给自己。@Danny 建议您查看一个名为“JavaMail”的 API,这就是我首先要尝试的。(将缩略图附加到电子邮件会有点麻烦,所以我建议先跳过这部分。)如果发送电子邮件不成功,您可以跳过将新结果保存到文件中已经看到的 URL 列表,以便您下次可以包含它们(让您的男朋友为您解释 try..catch)。如果成功,只需打开文件并将新 URL 放在末尾即可。
- 您可能想要在屏幕上打印一些关于您刚刚所做的事情的信息,以便您在使用该程序时获得一些关于正在发生的事情的反馈。然后你只需要睡一会儿(比如说,一分钟),然后再回到主循环的开头并重新开始。
如果您在这些部分中的任何一个方面需要帮助,请提出一个单独的问题。如果您需要有关如何开始编写 Java 程序的帮助,请在 Google 上搜索初学者教程,您应该会找到很多。当您掌握了窍门后,我建议您尝试使用 Eclipse 之类的 IDE,它是一个复杂但复杂的工具,可以通过多种方式帮助您。但是,IDE 来来去去,知道如何仅使用基本语言工具(在您的情况下为 java 和 javac 程序)以特定语言进行编程总是很好的。
无论如何,祝你好运,快乐的黑客!:-)