Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   "Выдрать" конкретную часть сайта на C# (https://forum.antichat.xyz/showthread.php?t=205169)

F&D 19.05.2010 15:52

"Выдрать" конкретную часть сайта на C#
 
Доброго времени суток!
Есть у меня такая задача, нужно "выдрать"/достать/извлечь конкретную область сайта(в моем случае это сайт deviantart). Что я имею ввиду по словами "выдрать"/достать/извлечь конкретную область сайт?
Т.е. необходимо чтобы любая часть/блок сайта, допустим блок с фотографиями, отображался у меня в WebBrowser. И чтобы там были именно только фотографии конкретного блока и ничего больше. Либо допустим, только блок с комментариями.

Пример:
1.
http://www.postimage.org/image.php?v=PqqZfqJ

2.
http://www.postimage.org/image.php?v=TsMkyRA

Вот 1. это сайт, главная страница, а 2., то что нужно достать...


Использовать пытаюсь Data Extracting SDK.
И вот так:
Код:

HtmlProcessor proc = new HtmlProcessor(new UriHtmlProcessor("http://www.deviantart.com/").DocumentSource);   
var divs = proc.Body.GetDomElements("div").Where(div => div.Class == "tt.a");   
foreach(var div in divs)
{       
    var images = div.GetDomElements("img");
}


Возможно кто-то работал уже с данной SDK. Посоветуйте пожалуйста как это сделать? Потому что уже не знаю как и что. Запустался.

Либо может каким-то стандартными путями...

Заранее благодарю.

W!z@rD 19.05.2010 17:10

Стандартные пути:
IndexOf, Remove, ...
+ Regex

F&D 19.05.2010 18:04

Цитата:

Сообщение от W!z@rD
Стандартные пути:
IndexOf, Remove, ...
+ Regex

Спасибо.
А можно маленький пример?

assume[C3] 19.05.2010 18:21

string URL = "http://google.ru";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Timeout = 999999999;
string data = new StreamReader(request.GetResponse().GetResponseStre am()).ReadToEnd();

assume[C3] 19.05.2010 18:29

Чтоб не создавать ещё 1 тему, не кто не подскажет как со string переменной можно убрать все дубли (повторные слова)?

P.S ТС сорри за оффтоп.

F&D 20.05.2010 19:37

Цитата:

Сообщение от assume[C3]
string URL = "http://google.ru";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Timeout = 999999999;
string data = new StreamReader(request.GetResponse().GetResponseStre am()).ReadToEnd();

Что-то не совсем понятно.
Не уже ли я настолько далекий... :(

BrainDeaD 20.05.2010 20:01

Цитата:

Сообщение от F&D
Что-то не совсем понятно.
Не уже ли я настолько далекий... :(

в этом примере он паказал, как получить исходник страницы. его ты и можешь пропарсить regex.



Цитата:

Сообщение от assume[C3]
Чтоб не создавать ещё 1 тему, не кто не подскажет как со string переменной можно убрать все дубли (повторные слова)?.

Код:

string newString = string.Join(" ", oldString.Split(new char[1] { ' ' }).Distinct().Select(s => s.ToString()).ToArray())+"\nthat's why i love c# :)";

F&D 20.05.2010 20:56

Цитата:

Сообщение от BrainDeaD
в этом примере он паказал, как получить исходник страницы. его ты и можешь пропарсить regex.

Я правильно понял - это оно?!

BrainDeaD 20.05.2010 21:00

да, правильно. с его помощью ты можешь искат
регулярные выражения и выбирать тебе нужные.

F&D 20.05.2010 21:15

Цитата:

Сообщение от BrainDeaD
да, правильно. с его помощью ты можешь искат
регулярные выражения и выбирать тебе нужные.

Ну что ж.. попробую.
Спасибо.


Время: 19:56