Обычно я бы не использовал OpenRead()
, вместо этого попробуйте DownloadData()
или DownloadString()
.
Также может случиться так, что википедия намеренно блокирует ваш запрос, потому что вы не предоставили строку пользовательского агента:
WebClient client = new WebClient();
client.Headers.Add("user-agent",
"Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4");
Я довольно часто использую WebClient и довольно быстро узнал, что веб-сайты могут и будут блокировать ваш запрос, если вы не предоставите строку пользовательского агента, которая соответствует известному веб-браузеру. Кроме того, если вы создадите свою собственную строку пользовательского агента (например, «мой супер крутой парсер»), вы также будете заблокированы.
[Редактировать]
Я изменил свой пример строки пользовательского агента на строку современной версии Firefox. Первоначальный пример, который я привел, был строкой пользовательского агента для IE6, что не очень хорошая идея. Почему? Некоторые веб-сайты могут выполнять фильтрацию на основе IE6 и отправлять всем пользователям этого браузера сообщение или на другую страницу с надписью «Пожалуйста, обновите свой браузер» — это означает, что вы не получите контент, который хотели получить.
person
JK.
schedule
27.01.2011