1

一个多星期前,我刚开始学习编程,并且和他们一样年轻。我从未参加过任何计算机科学课程,但正在接受一位非常优秀的专业程序员(我的男朋友)的指导。作为对我自己的挑战,我必须创建一个程序来筛选 Craig 的列表并不断通过电子邮件向我发送缩略图和指向 Craig 列表的链接发现我已经根据我喜欢的复古、现代等事物设置了规范。该程序将用 Java 编写,因为那是我最终想要找到工作的目标。我的问题是,如何完成这项任务?当然,我并不是为了获得一些帮助而为我做这件事。感谢您提前提供的所有帮助。

最好的,

保拉

4

1 回答 1

2

有趣的问题,有很多潜在的答案。

我将选择通过描述我将如何尝试解决问题来回答。现在,由于您将使用 Web 服务 Craigslist,所以我要做的第一件事就是找出它有什么样的 API。在谷歌搜索“craigslist api”,前几页的点击表明实际上没有 Craigslist API。这对于如今的 Web 服务来说是令人失望和令人惊讶的,这意味着您可能不得不亲自动手并抓取实际的 HTML 代码。这不是我在 Java 中真正要做的事情,尽管我承认这可能部分是因为我不了解 Java HTTP API。因此,我将简要介绍该程序可以做什么:

  1. 程序的输入是搜索词,它们只需要在开始时提供一次。这就是命令行参数的用途,因此每个参数都可以是一个搜索词。提供多个搜索词是什么意思?可能要么他们都必须匹配,要么至少有一个必须匹配。你决定。
  2. 该程序的有趣部分包括一个主循环,它重复以下内容:
    1. 获取您需要的 Craigslist 搜索结果页面。@Danny 建议您查看 Apache HttpClient,这对我来说听起来不错。
    2. 从 HTML 中提取您需要的信息。(这是最难的部分,我将把它留作练习——如果您需要帮助,请随时提出一个新问题。)
    3. 嗯,在这里您需要知道哪些结果是新的,哪些是您已经看到的。由于即使您重新启动程序,此信息也应该保留,因此您可能希望将其存储在文件中。在这种情况下,您将在此处打开文件,并针对文件中的每一行,检查每个结果,如果在文件中找到该结果,则将其删除。例如,该文件可以每行包含一个 URL。
    4. 现在您将尝试将结果邮寄给自己。@Danny 建议您查看一个名为“JavaMail”的 API,这就是我首先要尝试的。(将缩略图附加到电子邮件会有点麻烦,所以我建议先跳过这部分。)如果发送电子邮件不成功,您可以跳过将新结果保存到文件中已经看到的 URL 列表,以便您下次可以包含它们(让您的男朋友为您解释 try..catch)。如果成功,只需打开文件并将新 URL 放在末尾即可。
    5. 您可能想要在屏幕上打印一些关于您刚刚所做的事情的信息,以便您在使用该程序时获得一些关于正在发生的事情的反馈。然后你只需要睡一会儿(比如说,一分钟),然后再回到主循环的开头并重新开始。

如果您在这些部分中的任何一个方面需要帮助,请提出一个单独的问题。如果您需要有关如何开始编写 Java 程序的帮助,请在 Google 上搜索初学者教程,您应该会找到很多。当您掌握了窍门后,我建议您尝试使用 Eclipse 之类的 IDE,它是一个复杂但复杂的工具,可以通过多种方式帮助您。但是,IDE 来来去去,知道如何仅使用基本语言工具(在您的情况下为 java 和 javac 程序)以特定语言进行编程总是很好的。

无论如何,祝你好运,快乐的黑客!:-)

于 2011-10-23T23:54:57.447 回答