Здравствуйте, вот недавно на скорую руку сделал парсер прокси. Он не отличается особой функциональностью. В нем представлен один из возможных способов парсинга(не самого эффективного, но все же...). Грабит он отсюда
Код:
http://www.ip-adress.com/proxy_list/
Собснаисходник: [Ссылки могут видеть только зарегистрированные пользователи. ] VT
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
Спасибо за внимание!
________________ | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). |
Помог - ставь спасибку Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось VeTaL_UA; 17.05.2015 в 04:26.
1)При запуске выбивает исключение в этой строке кода:
client.DownloadFile(@"http://www.ip-adress.com/proxy_list/", @"C:\proxy.txt");
Исключение: System.Net.WebException
Решение: ввести обработку исключения типа WebException:
try {
client.DownloadFile(@"http://www.ip-adress.com/proxy_list/", @"C:\proxy.txt");
}
catch(WebException arg)
{
MessageBox.Show("Ошибка при загрузке сайта");
return;
}
2) Первое исключение выбило из-за ограничений прав на запись (создание) файла в ../C/
Решение:
Лучше будет ввести папку в С для хранения этого текстового документа
client.DownloadFile(@"http://www.ip-adress.com/proxy_list/", @"C:\Activators\proxy.txt");
3) По-моему создавать файл не обязательно, можно сразу же StreamReader напрямую из полученного ответа читать, если в дальнейшем многопоточность реализовывать запись в файл так и так придется убирать:
Решение:
using (var request = new HttpRequest())
{
request.Cookies = null;
request.UserAgent = HttpHelper.RandomUserAgent();
request.AllowAutoRedirect = true;
var responce = request.Get(@"http://www.ip-adress.com/proxy_list/");
var sr = new StreamReader(responce.ToString()); //не уверен в этой строке конечно))
}
А при каждом тике таймера происходит запрос страницы и обработка ответа, а страницы же не меняются, тогда получается он постоянно парсит одну и ту же страницу?