Мне нужно было выполнить аналогичные действия с агрегацией каналов и созданием каналов rss из содержимого веб-страниц в разных доменах.
Пользователь Получает страницу app1, заполняет детали и отправляет их на сервер для app1. У меня есть метод, который выглядит следующим образом ...
HTMLDocument FetchURL( string url )
{
WebClient wc = new WebClient();
string remoteContent = wc.DownloadString(url);
// mshtml api is very weird but lets just say you have to do things this way ...
HtmlDocument doc = new HTMLDocument();
IHTMLDocument2 doc2 = (IHTMLDocument2)doc;
doc2.write(new object[] { remoteContent });
return (HTMLDocument)doc2;
}
Эта функция используется для двух целей ...
- Получает страницу содержимого по адресу "URL"
- Анализирует это содержимое в объект HTMLDocument
Если у вас есть эта функция, вы можете вызвать ее, передав URL-адрес на удаленную страницу, и получить обратно HTML-документ.
Функции в объекте HTMLDocument позволят вам выполнять javascript как dom-запросы, такие как:
docObject.GetElementById("id");
У меня тогда есть разные функции, которые делают разные вещи с этим объектом на основе страницы / сайта, с которого я возвращаю данные.
Однако здесь есть один роковой недостаток ...
Вероятно, это очень хорошо работает с сайтами, которые не сильно меняются по структуре и построены с помощью кода, но не так хорошо на менее динамичных сайтах.
С помощью stackoverflow, например, легко вывести вопрос и принятый ответ на этот вопрос, чтобы я мог использовать этот код для извлечения и публикации контента отсюда на моем собственном веб-сайте.
Однако ...
Это не поможет вам в деталях, связанных с пользователем / логином, так как такая информация не доступна для всех.
Это немного похоже на то, как я собираюсь и пытаюсь связать профили facebook с моим собственным веб-сайтом, мне нужно будет пройти через некоторую форму API, в которой пользователь должен подтвердить свои данные, прежде чем делать запрос.
простое перетаскивание веб-страницы на основе только URL-адреса не даст другому сайту никакой информации для аутентификации, если только этот сайт не принимает данные для входа пользователя в строку запроса, и у вас их уже есть.
Однако вы можете объединить запросы, разорвав мой пример метода, запросив страницу входа, проанализировав результаты, заполнив форму, а затем отправив сообщение обратно, используя тот же экземпляр веб-клиента для входа в систему, затем запросив URL.
Идея заключается в том, что у вас будет форма, в которой пользователю будет предложено ввести свои регистрационные данные для удаленного сайта на вашем сайте, а затем вы перейдете и найдете страницу своего профиля на основе этого.
Лучше всего использовать его в классе, а не в простом методе, как у меня здесь.
В моем случае, хотя я был только после чего-то простого (топ-40 лучших диаграмм Би-би-си), из которого я извлек информацию не только из Би-би-си, но и из таких мест, как Amazon, Google и YouTube, затем я создал страницу:)
Это аккуратно, но не служит никакой функциональной цели, кроме перетаскивания всех ваших любимых источников информации на 1 страницу.