Как создать программу для поиска локальных находок Крейга? - PullRequest
1 голос
/ 24 октября 2011

Я только начал изучать программирование чуть более недели назад, и я такой же зеленый, как и они.Я никогда не учился на курсах информатики, но меня обучает очень хороший профессиональный программист (мой парень).В качестве проблемы для себя я должен создать программу, которая просматривает список Крейга и посылает мне по электронной почте непрерывно большой палец, и ссылки на список Крейга обнаруживают, что я установил спецификации для вещей, которые мне нравятся, как винтаж, модерн и т. Д.быть написанным на Java, потому что это то, к чему я стремлюсь в конце концов получить работу.У меня вопрос, как можно решить эту задачу?Я не ищу, чтобы это было сделано для меня только для некоторой помощи конечно.Заранее благодарю за помощь.

Лучший,

Паула

1 Ответ

2 голосов
/ 24 октября 2011

Интересный вопрос, с большим количеством потенциальных ответов.

Я выберу ответ, описав, как я буду пытаться решить проблему.Теперь, поскольку вы будете работать с Craigslist, веб-сервисом, первое, что я сделаю, это выясню, какой у него API.В поисках Google по "craigslist api" первые несколько страниц обращают внимание на то, что Craigslist API фактически не существует.Это разочаровывает и немного удивляет для веб-службы в наши дни и означает, что вам, вероятно, придется испачкать руки и почистить настоящий HTML-код.Это не совсем то, что я бы делал в Java, хотя я признаю, что это может быть отчасти потому, что я не знаю API Java HTTP.Поэтому я просто предоставлю план того, что могла бы сделать программа:

  1. Входные данные для программы - это условия поиска, и их нужно вводить только один раз в начале.Для этого используются аргументы командной строки, поэтому каждый аргумент может быть поисковым термином.Что значит предоставить несколько поисковых терминов?Вероятно, либо то, что они все должны совпадать, либо то, что хотя бы одно должно совпадать.Вы решаете.
  2. Интересная часть программы состоит из основного цикла, который повторяет следующее:
    1. Получите нужную вам страницу результатов поиска Craigslist.@Danny предложил вам взглянуть на Apache HttpClient, и это звучит хорошо для меня.
    2. Извлеките необходимую информацию из HTML.(Это сложная часть, и я оставлю ее в качестве упражнения - не стесняйтесь начинать новый вопрос, если вам нужна помощь в этом.)
    3. Хм, здесь вам нужно знать, какие результаты являются новыми икоторый вы уже видели.Поскольку эта информация должна сохраняться, даже если вы перезапустите программу, вы, вероятно, захотите сохранить ее в файле.В этом случае вы бы открыли файл здесь, и для каждой строки в файле просмотрите все ваши результаты и удалите этот результат, если он найден в файле.Например, файл может содержать один URL на строку.
    4. Теперь вы попытаетесь отправить результаты по почте.@Danny предложил вам проверить API под названием «JavaMail», поэтому я попробую сначала.(Присоединение миниатюр к электронным письмам будет немного сложнее, поэтому я советую сначала пропустить эту часть.) Если отправка электронного письма не удалась, вы можете просто пропустить сохранение новых результатов в свой файл с помощьюсписок уже просмотренных URL-адресов, чтобы вы могли включить их в следующий раз (попросите вашего парня объяснить для вас try..catch).Если это удастся, просто откройте файл и поместите новые URL в конце.
    5. Возможно, вы захотите вывести на экран некоторую информацию о том, что вы только что сделали, чтобы вы могли получить некоторую обратную связьо том, что происходит, когда вы используете программу.Затем вы просто поспите некоторое время (скажем, одну минуту), прежде чем вернуться к началу основного цикла и повторить все заново.

Если выНужна помощь с любой из этих частей, начните отдельный вопрос.Если вам нужна помощь с тем, как начать писать программы на Java, поищите в Google учебник для начинающих, и вы должны найти много.Когда вы освоитесь, я предлагаю попробовать IDE, например Eclipse, которая является сложным, но сложным инструментом, который может помочь вам несколькими способами.Однако IDE приходят и уходят, и всегда полезно знать, как программировать на определенном языке, используя только базовые языковые инструменты (в вашем случае программы java и javac).

В любом случае, удачи исчастливого взлома!: -)

...