И на самом то деле задачка проста!
static void Main(string[] args)
{
string text = GetCode("http://upakorel.ru/product-category/sv-valentin/");
Console.WriteLine(text);
Console.Read();
}
public static String GetCode(string urlAddress)
{
//string urlAddress = "http://google.com";
string data = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = null;
if (response.CharacterSet == null)
{
readStream = new StreamReader(receiveStream);
}
else
{
readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
}
data = readStream.ReadToEnd();
response.Close();
readStream.Close();
}
return data;
}
Но вместо html я получаю
<html><head><script>function set_cookie(){var now = new Date();var time = now.ge
tTime();time += 19360000 * 1000;now.setTime(time);document.cookie='beget=begetok
'+'; expires='+now.toGMTString()+'; path=/';}set_cookie();location.reload();;</s
cript></head><body></body></html>
То есть какой то яваскрипт что ли - хз. Как мне получить настоящий исходный код страницы-как в браузере фаербагом.
В общем при первом запросе, т.к. у вас отсутствуют Cookie
они вам устанавливаются с помощью JavaScript
, нужно перед отправкой request
установить их самостоятельно
string data = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
Cookie cookie = new Cookie
{
Name = "beget",
Value = "begetok"
};
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(new Uri(urlAddress), cookie);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Это настоящий HTML, сайт загружается в два захода. Первый раз выполняется скрипт JS, который проставляет куки set_cookie()
и перезагружает страницу location.reload()
. Когда вы пытаетесь получить страницу без перезагрузки, то никаких кук нет и перезагрузку с ними Вы не делаете.
Добавьте куки и будет Вам счастье.
if (request.CookieContainer == null)
{
request.CookieContainer = new CookieContainer();
}
request.CookieContainer.Add(new Uri(urlAddress), new Cookie("beget","begetok"));
Виртуальный выделенный сервер (VDS) становится отличным выбором
Доброго времени суток, сейчас нахожусь в поисках IMAP клиента, который бы поддерживал работу через прокси и был бесплатнымГугл достаточно...
Хочу поставить условный breakpoint, который сработает, если программа съела слишком много памятиПопытался прописать такое в условие:
У меня есть класс со свойствами в качестве объектов каких-то еще классовНапример:
Нужно регулярное выражение где в имени первая буква должна быть большой и другие большие буквы нужно запретить, за исключением случая когда...