Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
DeiTy
43 / 3 / 0
Регистрация: 22.05.2015
Сообщений: 131
1

Поиск куска кода в странице (Регулярные выражение)

30.07.2015, 01:02. Просмотров 577. Ответов 11
Метки нет (Все метки)

Всем привет .
Пишу некий парсер групп в вк , с кровью и потом я сделал авторизацию .
Так же сделал некое подобие поиска по запросу
Но не могу понять как спарсить ссылки на группы

Делаю это так . Но нечего как вы поняли не получается , подскажите как правельно это сделать (Желательно кодом )

C#
1
2
3
                    string pars = request.Get("http://vk.com/search?c%5Bq%5D=" + txtSerch.Text + "&c%5Bsection%5D=communities").ToString();
                    string groop = pars.Substrings(" <a href=", "\" onclick=\"return nav.go(this, event)\">\"", 0)[0];
                    txtLog.AppendText("vk.com\"" + groop);
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2015, 01:02
Ответы с готовыми решениями:

Перевод куска кода с php на С#
Добрый вечер друзья! Столкнулся с такой проблемой что нужно расчитать Sig Для Rest Api но пример...

Время выполнения куска кода
В общем нужно реализовать точный подсчет времени выполнения отдельных кусков кода программы. Как...

Объясните работу куска кода с IndexOf
Здравствуйте. Объясните, как работает кусок кода. Заранее спасибо. while (cur != -1) ...

Портирование куска кода (класс BigIntiger) с Java в C#
Доброго времени суток. Как портировать данный код на C#? BigInteger mod = new...

Регулярные выражение с#
не могу понять задание. требуется: Вывести на экран все адреса украинских веб сайтов содержащихся...

11
Good1101
53 / 53 / 10
Регистрация: 28.12.2011
Сообщений: 263
30.07.2015, 05:03 2
Кусок исходного кода страница покажи с которой нужно спарсить ссылки.
0
DeiTy
43 / 3 / 0
Регистрация: 22.05.2015
Сообщений: 131
30.07.2015, 13:34  [ТС] 3
Вот пример

<a href="/anime" onclick="return nav.go(this, event)">
От сюда нужно спарсить это /anime
0
Woldemar89
TheGreatCornholio
1223 / 704 / 282
Регистрация: 30.07.2015
Сообщений: 2,381
Завершенные тесты: 1
30.07.2015, 15:07 4
Html Agility Pack - попробуй освоить, мне, в свое время, помогло.
Html Agility Pack: распарсить страницу - по теме.
0
30.07.2015, 15:07
XRoy
864 / 714 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
30.07.2015, 17:18 5
DeiTy,
Почему бы не воспользоваться VK Api?
0
DeiTy
43 / 3 / 0
Регистрация: 22.05.2015
Сообщений: 131
30.07.2015, 22:35  [ТС] 6
Цитата Сообщение от XRoy Посмотреть сообщение
Почему бы не воспользоваться VK Api?
Не когда не пробовал ... и даже не слышал об этом "Api"

Добавлено через 3 минуты
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Html Agility Pack - попробуй освоить, мне, в свое время, помогло.
Html Agility Pack: распарсить страницу - по теме.
А почему мой способ не сработал ?
0
XRoy
864 / 714 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
30.07.2015, 22:36 7
DeiTy, https://vk.com/dev/groups.search
0
Woldemar89
TheGreatCornholio
1223 / 704 / 282
Регистрация: 30.07.2015
Сообщений: 2,381
Завершенные тесты: 1
30.07.2015, 23:10 8
А почему мой способ не сработал ?
C#
1
2
3
string pars = request.Get("http://vk.com/search?c%5Bq%5D=" + txtSerch.Text + "&c%5Bsection%5D=communities").ToString();
                    string groop = pars.Substrings(" <a href=", "\" onclick=\"return nav.go(this, event)\">\"", 0)[0];
                    txtLog.AppendText("vk.com\"" + groop);
Substrings? - странно - у меня нет этого метода.

Выпилить ссылку быдлоспособом можно так:

C#
1
2
3
4
5
6
7
8
string html = request.Get(@"http://vk.com/search?c%5Bq%5D=" + txtSerch.Text + @"&c%5Bsection%5D=communities").ToString(); 
 
            string hreftag = @"<a href=""";
            int bindex = html.IndexOf(hreftag) + hreftag.Length;
            int eindex = html.IndexOf(@"""", bindex + 1);
 
            string href = html.Substring(bindex, eindex - bindex);
            MessageBox.Show(href);
Попробуй так - проверь что выведет - если что - подгони сам.

Добавлено через 11 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
private string GetHref(string request_addr)
        {
               try 
               {
                
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(request_addr);
 
               
                request.Timeout = 3000;
 
 
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
 
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
 
 
                       
 
                            using (StreamReader readStream = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                            {
 
 
                                string html = readStream.ReadToEnd();
                              
                                string hreftag = @"<a href=""";
                               int bindex = html.IndexOf(hreftag) + hreftag.Length;
                                int eindex = html.IndexOf(@"""", bindex + 1);
 
                                string href = html.Substring(bindex, eindex - bindex);
                                  return href;
 
                            }
 
 
 
 
                    }
 
                    else return "no_response";
 
 
                }
 
 
 
            }
            catch { return "exception"; }
                                
                             
}
 
string reqtext = @"http://vk.com/search?c%5Bq%5D=" + txtSerch.Text + @"&c%5Bsection%5D=communities";
string grouphref = GetHref(reqtext);
MessageBox.Show(grouphref);
0
DeiTy
43 / 3 / 0
Регистрация: 22.05.2015
Сообщений: 131
30.07.2015, 23:57  [ТС] 9
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Substrings? - странно - у меня нет этого метода.
Подключите
using xNet.Text;
0
Woldemar89
TheGreatCornholio
1223 / 704 / 282
Регистрация: 30.07.2015
Сообщений: 2,381
Завершенные тесты: 1
31.07.2015, 11:57 10
Ну тогда в моем коде, там где парсится ссылка, воспользуйтесь методом Substrings, и сделайте чтобы функция возвращала string [] или List<string>.
Думаю будет профитно, насчет как пользоваться Substrings - думаю, разберетесь, или используйте регулярные выражения и перебирайте совпадения.
Ну и, наконец, как я писал, Html Agility Pack - в помощь.

Добавлено через 7 минут
Обобщу:
В моем коде, там где получили html, можно тремя вариантами парсить ссылки:

1. Быдлокод Substring и Substrings.
2. Регулярные выражения с перебором совпадений.
3. Html Agility Pack, как я писал выше.

Советую 3+2 использовать, либо 1+2.

Ну или как писал XRoy - юзай API. - самый адекватный способ.
0
DeiTy
43 / 3 / 0
Регистрация: 22.05.2015
Сообщений: 131
31.07.2015, 14:52  [ТС] 11
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Ну или как писал XRoy - юзай API. - самый адекватный способ.
Еслиб я знал как его юзать ...
Ну а так : спасибо за помощь , буду пробовать
0
XRoy
864 / 714 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
31.07.2015, 16:14 12
Цитата Сообщение от DeiTy Посмотреть сообщение
Еслиб я знал как его юзать ...
В документации все описано, можете попробовать взять обертку над api, например: https://vknet.github.io/vk/
0
31.07.2015, 16:14
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 16:14

Регулярные выражение. Поиск конкретного слова
Здравствуйте. У меня сложилась некоторая проблема с пониманием регулярных выражений. Есть...

Регулярные выражения. Обозначение большого куска текста
Здравствуйте. Мне понадобилось, работая с QRegExp, сделать финт ушами и захватить весь текст после...

Замена програмно куска кода в файле .php другим куском кода
Мне необходимо програмно заменить кусок кода в файле .php Есть файл .php, в котором надо заменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.