Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 09:54   #21
qwq
Пользователь
 
Регистрация: 05.11.2009
Сообщений: 96
По умолчанию

Здраствуйте.
Проблема вот какая. Пробую сделать то что посоветовал Reskov
Код:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(txt);
            foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[contains(concat(' ', normalize-space(@class), ' '), ' points_link ')]"))
            {
                //$(this).attr('href') + $(this).attr('alt') + "&art=654143" + "&random=" + (e.pageX*e.pageY);

                //вот ваша новая ссылка покоторой надо перейти get запросов
                string newHref = link.GetAttributeValue("href", string.Empty) + link.GetAttributeValue("alt", string.Empty) + "&art=654143&random=" + 12346;
                listBox2.Items.Add(newHref);
            }
но на строчке doc.DocumentNode.SelectNodes("//a[contains(concat(' ', normalize-space(@class), ' '), ' points_link ')]") выскакивает ошибка "В экземпляре объекта не задана ссылка на объект."
Посмотрите, может с синтаксисом напутанно.
qwq вне форума Ответить с цитированием
Старый 18.12.2012, 10:18   #22
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Эт я не внимательно посмотрел... не находит ссылки на странице... Xpath другой надо написать
Reskov вне форума Ответить с цитированием
Старый 18.12.2012, 10:26   #23
qwq
Пользователь
 
Регистрация: 05.11.2009
Сообщений: 96
По умолчанию

Цитата:
Сообщение от Reskov Посмотреть сообщение
Эт я не внимательно посмотрел... не находит ссылки на странице... Xpath другой надо написать
А не могли бы вы написать правильный Xpath. Просто я с ним встречаюсь впервые, примеров мало и те на английском.

Последний раз редактировалось qwq; 18.12.2012 в 10:47.
qwq вне форума Ответить с цитированием
Старый 18.12.2012, 15:53   #24
qwq
Пользователь
 
Регистрация: 05.11.2009
Сообщений: 96
По умолчанию

Ну что никто не может помочь? Очень хочется разобраться, помогите

Последний раз редактировалось qwq; 19.12.2012 в 15:20.
qwq вне форума Ответить с цитированием
Старый 19.12.2012, 15:20   #25
qwq
Пользователь
 
Регистрация: 05.11.2009
Сообщений: 96
По умолчанию

Народ не подумайте, что я просто сижу и жду готовый код. Просто я реально не знаю ничего о Xpath, синтаксис, комманды. Все что я видел по этой теме, это один пример, который Reskov и посоветовал, да и у того описание на английском.
Буду очень благодарен если поможете разобраться.
qwq вне форума Ответить с цитированием
Старый 19.12.2012, 15:31   #26
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

XPath разве пропарсит за нас значение узла?
тем более что узлы создаются динамически при выполнении JS.

скрипт который выводит рекламы выглядит так:
Код:
var tm38652 = '7'; document.writeln('<a href="http://www.tak.ru" class="takru"><b>Оплаченная Реклама:</b></a>'+
' &nbsp; | &nbsp;<a href="http://z1090.takru.com/click.php?key=1910222133317411189600797441460215415922664774008" class="takru" target=_top onclick="javascript: f23478(this);" onmouseover="javascript: ff93338(476504,event);">Жилье от Застройщиков по Стартовым Ценам! ..</a> &nbsp; | &nbsp;<a href="http://z1090.takru.com/click.php?key=1897222133317411189600797342276072174521640636251" class="takru" target=_top onclick="javascript: f23478(this);" onmouseover="javascript: ff93338(381913,event);">Квартиры и Дома - Найди Лучший Вариант! ..</a> &nbsp; | &nbsp;<a href="http://z1090.takru.com/click.php?key=2060222133317411189600799163710021023939825576565" class="takru" target=_top onclick="javascript: f23478(this);" onmouseover="javascript: ff93338(203971,event);">Базы по Недвижимости</a> &nbsp; | &nbsp;<a href="http://z1090.takru.com/click.php?key=2124222182717511189600791169236569869554410132175" class="takru" target=_top onclick="javascript: f23478(this);" onmouseover="javascript: ff93338(293902,event);">Электронная онлайн библиотека БуКва - Скачать..</a> &nbsp; | &nbsp;<a href="http://z1090.takru.com/click.php?key=2190222179017411189600792442793616520217175203172" class="takru" target=_top onclick="javascript: f23478(this);" onmouseover="javascript: ff93338(509005,event);">Возьмите бесплатный видеокурс по заработку в ..</a> &nbsp; | &nbsp;<a href="http://z1090.takru.com/click.php?key=2190222179017411189600792932340506508912174072851" class="takru" target=_top onclick="javascript: f23478(this);" onmouseover="javascript: ff93338(373953,event);">Заработок от 150$ в день! </a> &nbsp; | &nbsp;<a href="http://z1090.takru.com/click.php?key=2160222189517411189600790716537161065682129740104" class="takru" target=_top onclick="javascript: f23478(this);" onmouseover="javascript: ff93338(780527,event);">140$/ в день в интернете!!! </a> &nbsp; | &nbsp;<a href="http://z1090.takru.com/click.php?key=1955222131117411189600790487765621030402426229726" class="takru" target=_top onclick="javascript: f23478(this);" onmouseover="javascript: ff93338(291382,event);">Заработок в интернете на автопилоте..</a>'+
''); function f23478(a75279) {a75279.href += tm38652+"822636";}  function ff93338(aa58163,e) {x=e.pageX; y=e.pageY; if (!x) {x=window.event.x; y=window.event.y;}
x=x % 100; if (x<10) x+=10; y=y % 100; if (y<10) y+=10; tm38652 = ""+aa58163+x+y;}
http://z1090.takru.com/in.php?id=1091404
скрипт берется отсюда, судя по всему ссылка постоянна для этого сайта.
для накрутки переходов будет нужен реферер(параметр запроса, легко указать).

остается распарсить скрипт на предмет ссылок, в принципе можно составить регулярку на это дело.
Цитата:
да и у того описание на английском.
извините, но с вашим не знаем английского я ничего поделать не могу.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.12.2012, 19:37   #27
qwq
Пользователь
 
Регистрация: 05.11.2009
Сообщений: 96
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
XPath разве пропарсит за нас значение узла?
тем более что узлы создаются динамически при выполнении JS.
Так я не знаю пропарсит он или нет. Поэтому и спросил как средствами C# выполнить JS, а мне посоветовали XPath, о котором узнал недавно и мало что знаю.
Главная задача это средствами C# выполнить JS. Авторизацию произвожу через httpwebrequest httpwebresponse. Знаю что webbrowser выполняет JS, но можно ли в него передать куки и сессию с httpwebresponse?
Может я не в ту сторону смотрю, подскажите какие еще есть варианты решения данной проблемы.
qwq вне форума Ответить с цитированием
Старый 19.12.2012, 20:36   #28
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от qwq Посмотреть сообщение
Так я не знаю пропарсит он или нет. Поэтому и спросил как средствами C# выполнить JS, а мне посоветовали XPath, о котором узнал недавно и мало что знаю.
Главная задача это средствами C# выполнить JS. Авторизацию произвожу через httpwebrequest httpwebresponse. Знаю что webbrowser выполняет JS, но можно ли в него передать куки и сессию с httpwebresponse?
Может я не в ту сторону смотрю, подскажите какие еще есть варианты решения данной проблемы.
я вам сказал где взять JS на эту рекламу, ссылки там явно видно.
одной регуляркой их хапнуть быстро.

про XPath вопрос не вам был.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.12.2012, 21:08   #29
qwq
Пользователь
 
Регистрация: 05.11.2009
Сообщений: 96
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
я вам сказал где взять JS на эту рекламу, ссылки там явно видно.
одной регуляркой их хапнуть быстро.
Так проблема в том, что тот скрипт о котором Вы говорите, виден только незарегистрированным пользователям. Зарегистрированные пользователи видят данные этого скрипта
Код:
$('.points_link a').click(function(e){
		var url = $(this).attr('href') + $(this).attr('alt') + "&art=656684" + "&random=" + (e.pageX*e.pageY);
		$(this).attr('href',top.location.href);
		top.location.replace(url);
	});
тут нет явных ссылок и регулярки не подходят. Как видно из скрипта ссылки берутся рандомно.
art=656684 это номер статьи, из на странице которой будут располагаться ссылки
qwq вне форума Ответить с цитированием
Старый 19.12.2012, 22:12   #30
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

вот кусок документа где лежит скрипт
Код:
<div id="article_comment"></div><script src="http://click.uh.ru/show.php?key=1102984431022388102939623355690"></script>


его берем xpath
Код:
 var node=doc.DocumentNode.SelectSingleNode("//*[@id='article_comment']/following-sibling::script");
            MessageBox.Show(node.GetAttributeValue("src",""));
получаем такую ссылку
http://click.uh.ru/show.php?key=1102...02939623355690
идете гет запросом по ссылке

получаем такой скрипт

Код:
"$('.points_link').html('<strong>Реклама на сайте:</strong><br>&raquo;&nbsp; <a href=\"http://click.uh.ru/klik.php?key=10745739501097874102284911095772610275261137326414330\" target=_blank title=\"3\" 

alt=\"29514\">Самые лучшие виды вкладов до 90% годовых</a><br>&raquo;&nbsp; <a href=\"http://click.uh.ru/klik.php?key=107457395010978741024466110809126102101210439372\" target=_blank title=\"3\" 

alt=\"5261543445\">
прокси-анонимайзеры</a><br>');";
получаем regex href и alt и в цикле формируем урл

Код:
  var reg = new Regex("href=\"(.*?)\".*?alt=\"(.*?)\"");
foreach (Match match in reg.Matches(temp))
            {
                //match.Groups[1] href
                //match.Groups[2] alt
var url = match.Groups[1] + match.Groups[2] + "&art=656684" + "&random=" + 12312312;
            }
переходим по урлу гет запросом


Пс про Xpath почитать можно в интернете и еще в хроме есть кнопочка) правой по елемент inspect element, затем в появившемся окне опять по елементу и жмем copy xpath для ленивых)
Цитата:
XPath разве пропарсит за нас значение узла?
думаю если сильно извратиться то пропарсит, fn:replace есть там.. но это не зачем
http://www.w3.org/TR/xpath-functions/#func-matches

Последний раз редактировалось Reskov; 19.12.2012 в 22:28.
Reskov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# созранить изображение из потока (HttpWebRequest HttpWebResponse) qwq C# (си шарп) 4 09.12.2012 19:17
Доработать две программы, в которых идёт работа с классами HttpWebRequest и HttpWebResponse. goodwen Фриланс 0 13.12.2011 14:19
Проблема с обращением к другим сайтам через классы HttpWebRequest и HttpWebResponse. goodwen C# (си шарп) 0 12.12.2011 22:41
Проблема с HttpWebRequest и HttpWebResponse 3dgraph Общие вопросы .NET 2 15.07.2009 11:20
HttpWebRequest и HttpWebResponse Bbo Общие вопросы .NET 1 14.05.2009 15:51