Парсинг сайта (C#)
Есть вот такой сайт
.
Захотел ускорить процесс выбора нужных объявлений и столкнулся с некоторыми сложностями.
Придумал пару вариантов, но оба проблемных..
Первый:
Решил по идентификатору искать нужные.
Возвращается такой вот Html: Переглянути вкладення 15.txt
Нужная информация для регулярного выражения, находящаяся в ячейках таблицы, заполняется каким то кодом на Java
(javax.faces.ViewState j_id1:j_id10
nestedView:filter_form nestedView:filter_form) и прочитать я их не могу.
Второй вариант. Решил выбрать все объявления.
Но этот вариант не работает.. Где то ошибка наверное.
Два вопроса... Можно ли вернуть заполненные ячейки текстом с объявлением?
И что не правильно во втором варианте?
Есть вот такой сайт
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
Захотел ускорить процесс выбора нужных объявлений и столкнулся с некоторыми сложностями.
Придумал пару вариантов, но оба проблемных..
Первый:
Код:
public void GetWebPageAsString()
{
WebRequest requestHtml = WebRequest.Create("https://tender.me.gov.ua/EDZFrontOffice/menu/uk/purchaseStartSearch:announce_detail?id=276600");
WebResponse responseHtml = requestHtml.GetResponse();
StreamReader r = new StreamReader(responseHtml.GetResponseStream());
string htmlContent = r.ReadToEnd();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
doc.Save(@"c:\15.txt");
r.Close();
}
Решил по идентификатору искать нужные.
Возвращается такой вот Html: Переглянути вкладення 15.txt
Нужная информация для регулярного выражения, находящаяся в ячейках таблицы, заполняется каким то кодом на Java
(javax.faces.ViewState j_id1:j_id10
nestedView:filter_form nestedView:filter_form) и прочитать я их не могу.
Второй вариант. Решил выбрать все объявления.
Код:
public void GetWebPages()
{
WebResponse result = null;
HttpWebRequest req = null;
Stream newStream = null;
Stream ReceiveStream = null;
StreamReader sr = null;
try
{
req = (HttpWebRequest)HttpWebRequest.Create("https://tender.me.gov.ua/EDZFrontOffice/menu/uk/purchaseStartSearch");
req.Method = "POST";
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 AskTbFXTV5/3.9.1.14019 Firefox/3.6.13";
req.ContentType = "application/x-www-form-urlencoded ";
req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
req.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3");
req.Headers.Add("Accept-Encoding", "gzip");
req.Headers.Add("Accept-Encoding", "deflate");
req.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.7");
req.Connection = "keep-alive";
req.Headers.Add(HttpRequestHeader.Cookie, "JSESSIONID=68990d1f5fc1ff5e9d6f12676844");
byte[] SomeBytes = null;
string qstring = "nestedView%3Afilter_form=nestedView%3Afilter_form&nestedView%3Afilter_form%3Abull=1417&nestedView%3Afilter_form%3Afilterbranch=&nestedView%3Afilter_form%3Afiltercode=&nestedView%3Afilter_form%3Aj_id_id34pc8=&nestedView%3Afilter_form%3Aj_id_id41pc8=%D0%A8%D1%83%D0%BA%D0%B0%D1%82%D0%B8&javax.faces.ViewState=j_id1%3Aj_id8";
SomeBytes = Encoding.GetEncoding(1251).GetBytes(qstring);
req.ContentLength = SomeBytes.Length;
newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
result = req.GetResponse();
ReceiveStream = result.GetResponseStream();
Encoding encode = Encoding.GetEncoding(1251);
sr = new StreamReader(ReceiveStream);
string htmlContent = sr.ReadToEnd();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
doc.Save(@"c:\14.txt");
ReceiveStream.Close();
sr.Close();
}
catch (Exception )
{
}}
Два вопроса... Можно ли вернуть заполненные ячейки текстом с объявлением?
И что не правильно во втором варианте?


