PDA

Просмотр полной версии : [Файл] Исходники простого proxy parser`a


DartSkywalker
10.04.2014, 18:14
Здравствуйте, вот недавно на скорую руку сделал парсер прокси. Он не отличается особой функциональностью. В нем представлен один из возможных способов парсинга(не самого эффективного, но все же...). Грабит он отсюда

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Собснаисходник: [Ссылки могут видеть только зарегистрированные и активированные пользователи]
WindowsFormsApplication1.vshost.exe ([Ссылки могут видеть только зарегистрированные и активированные пользователи] 0e7a57a6c294b3/analysis/1431786831/)
ProxyScraper.exe ([Ссылки могут видеть только зарегистрированные и активированные пользователи] acb14a12bebea6/analysis/1431821849/)
ProxyScraper.vshost.exe ([Ссылки могут видеть только зарегистрированные и активированные пользователи] b520f479fde785/analysis/1431821875/)
WindowsFormsApplication1.exe ([Ссылки могут видеть только зарегистрированные и активированные пользователи] c2a5bda1225c74/analysis/1431821865/)


Спасибо за внимание!

sanchezsanya
18.01.2015, 12:16
1)При запуске выбивает исключение в этой строке кода:
client.DownloadFile(@"[Ссылки могут видеть только зарегистрированные и активированные пользователи]", @"C:\proxy.txt");
Исключение: System.Net.WebException
Решение: ввести обработку исключения типа WebException:
try {
client.DownloadFile(@"[Ссылки могут видеть только зарегистрированные и активированные пользователи]", @"C:\proxy.txt");
}
catch(WebException arg)
{
MessageBox.Show("Ошибка при загрузке сайта");
return;
}

2) Первое исключение выбило из-за ограничений прав на запись (создание) файла в ../C/
Решение:
Лучше будет ввести папку в С для хранения этого текстового документа
client.DownloadFile(@"[Ссылки могут видеть только зарегистрированные и активированные пользователи]", @"C:\Activators\proxy.txt");

3) По-моему создавать файл не обязательно, можно сразу же StreamReader напрямую из полученного ответа читать, если в дальнейшем многопоточность реализовывать запись в файл так и так придется убирать:
Решение:
using (var request = new [Ссылки могут видеть только зарегистрированные и активированные пользователи]())
{
request.Cookies = null;
request.UserAgent = [Ссылки могут видеть только зарегистрированные и активированные пользователи]();
request.AllowAutoRedirect = true;
var responce = request.Get(@"[Ссылки могут видеть только зарегистрированные и активированные пользователи]");
var sr = new StreamReader(responce.ToString()); //не уверен в этой строке конечно))
}

А при каждом тике таймера происходит запрос страницы и обработка ответа, а страницы же не меняются, тогда получается он постоянно парсит одну и ту же страницу?


А в общем код хороший

WOLF9595
06.01.2017, 13:55
Файл удален, у кого-нибудь остался файл?