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

Прежде всего, я надеюсь, что мой вопрос вас не беспокоит.Мне действительно нужно получить представление о том, как я могу это сделать, но, к сожалению, я действительно новичок, я ползаю, когда речь заходит о программировании.Я изо всех сил пытаюсь узнать это как можно лучше.Я благодарю вас за любую помощь, которую вы мне оказываете.

Вот задача: мне было приказано найти способ сбора данных с веб-сайта с помощью приложения ac #.Это будет сделано каждый день, чтобы обновлять данные, которые мы будем использовать для расчета какого-либо финансового индекса.

Я знаю, что мой вопрос может звучать расплывчато, в любом случае, даже говоря мне, как я могу быть болееточный поможет мне.Я знаю, что, кажется, в отчаянии, но, рассмотрев все вопросы о персонале, моя стипендия как бы зависит от этого.

Заранее спасибо!(Пожалуйста, не обращайте внимания на плохой английский, я бразилец, и мой английский еще может быть не очень хорошим.)

Ответы [ 4 ]

4 голосов
/ 24 января 2011

Во-первых, ваш английский в порядке.На самом деле, я думал, что вы носитель языка, пока не сказал иначе.

Вы ищете термин «очистка сайта».Обратите внимание на этот вопрос: Параметры для очистки HTML? .Второй ответ указывает на библиотеку пакета гибкости HTML, которую вы можете использовать.

Теперь здесь есть две возможности.Во-первых, вы должны проанализировать HTML-код и очистить ваши данные от него.Это требует больших вычислительных ресурсов и зависит от макета страницы.Если они изменят внешний вид сайта, он может сломать скребок.

Вторая возможность - предоставить какой-либо веб-сервис XML или JSON, который вы можете использовать.В этом случае вы ничего не очищаете, а скорее используете истинный поток данных.Если макет сайта изменится, вы не сломаетесь.Поддерживает ли ваш целевой сайт эту форму подачи данных, зависит от сайта.

1 голос
/ 24 января 2011

Если я понимаю ваш вопрос, вас просят сделать Web Scraping , где вы 1) скачиваете содержимое веб-страницы и 2) пытаетесь анализ данных из этого контента.

Для шага # 1 вы должны использовать объект WebClient в C # для загрузки HTML-кода с веб-страницы.Вы можете дать объекту WebClient URL-адрес, с которого вы хотите загрузить содержимое, и получить String, содержащий содержимое (возможно, HTML) URL-адреса.

Способ выполнения шага № 2 зависит откакой контент присутствует на сайте.Если вам известны определенные шаблоны, которые вы ищете в HTML, вы можете искать строку HTML, используя различные методы.Более общее решение для анализа данных HTML можно найти с помощью Html Agility Pack , который позволит вам обрабатывать HTML как древовидную структуру (DOM).

0 голосов
/ 24 января 2011

Хорошо, это довольно простой дизайн приложения, и существует много кода, который вы можете использовать повторно.Поскольку вы новичок, я расскажу о том, что вам нужно сделать, и порекомендую подходы.

1) Для извлечения веб-страниц вы будете использовать классы из System.Net (WebClient - самый простойк нам).Вы захотите, чтобы эта часть программы запускалась по таймеру, если вы можете (используя функцию запланированных заданий ОС), и просто перетаскивала страницы и помещала их в папку.

2) Выесть второе задание, которое будет выполняться отдельно, извлекая непрочитанные файлы из этой папки, анализируя их (лучше всего использовать библиотеку пакетов HtmlAgility ), а затем сохраняя их в некотором индексе ( Lucene лучше всего для этого)

3) У вас есть какое-то внешнее приложение (веб или настольное), которое запрашивает этот индекс для информации, которую вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...