Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2015, 16:37   #1
Coyote68
Новичок
Джуниор
 
Регистрация: 28.04.2015
Сообщений: 2
По умолчанию Веб-краулинг

Есть функция, которая заходит на сайт, берет с него html-код, и потом из этого кода извлекается информация.
Функция:
private static string getResponse(string url)
{
try
{
string txt = String.Empty;
WebRequest req = WebRequest.Create(url);
WebResponse resp = req.GetResponse();
using (Stream stream = resp.GetResponseStream())
{
using (StreamReader sr = new StreamReader(stream))
{
txt = sr.ReadToEnd();
}
}
Console.WriteLine(txt);
return txt;
}
catch
{
string q = "ERROR";
Console.WriteLine("We can not open the web-site");
return q;
}
}
Заходит на сайт, скажем, http://academic.research.microsoft.com/, но не заходит на тот же сайт, только с запросом, например, http://academic.research.microsoft.c...h?query=petrov. Причем, с других сайтов программа извлекает html-код и с главной страницы и со страницы, на которую переходим по запросу. Не подскажите, в чем дело???
Coyote68 вне форума Ответить с цитированием
Старый 28.04.2015, 17:03   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

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

Код:
catch (Exception ex)
{
    Console.WriteLine(ex); // или ex.Message

    string q = "ERROR";
    return q;
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 28.04.2015 в 17:06.
Alex11223 вне форума Ответить с цитированием
Старый 29.04.2015, 17:14   #3
Coyote68
Новичок
Джуниор
 
Регистрация: 28.04.2015
Сообщений: 2
По умолчанию

Исправил, изначально выдавался код запрашиваемой страницы, но позже начала вылезать ошибка (502) дефект шлюза
Coyote68 вне форума Ответить с цитированием
Старый 29.04.2015, 18:33   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

"позже" это как? Ну видимо слишком часто обращались и забанили вас.

А зачем все эти WebRequest'ы и т.п.? Я бы WebClient использовал, или HttpClient в .NET 4.5
Код:
using System.Net;

...

            var webClient = new WebClient();

            string html = webClient.DownloadString(url);

            Console.WriteLine(html);
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Веб-браузер, парсинг в общем работа с веб-страничками! Andersen1313 C++ Builder 1 22.08.2012 16:19
Исследование защищённости веб-сайтов и отдельных веб-приложений Белый Тигр Фриланс 4 18.01.2012 09:55