Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
43 / 3 / 0
Регистрация: 22.05.2015
Сообщений: 131
1

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

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

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

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

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2015, 01:02
Ответы с готовыми решениями:

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

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

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

Выделение куска текста на странице
Привет всем. У меня такая проблема. Есть html-страница с текстом, мне нужно написать сценарий, с...

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

<a href="/anime" onclick="return nav.go(this, event)">
От сюда нужно спарсить это /anime
0
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
30.07.2015, 15:07 4
Html Agility Pack - попробуй освоить, мне, в свое время, помогло.
Html Agility Pack: распарсить страницу - по теме.
0
870 / 720 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
30.07.2015, 17:18 5
DeiTy,
Почему бы не воспользоваться VK Api?
0
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
870 / 720 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
30.07.2015, 22:36 7
DeiTy, https://vk.com/dev/groups.search
0
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
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
43 / 3 / 0
Регистрация: 22.05.2015
Сообщений: 131
30.07.2015, 23:57  [ТС] 9
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Substrings? - странно - у меня нет этого метода.
Подключите
using xNet.Text;
0
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
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
43 / 3 / 0
Регистрация: 22.05.2015
Сообщений: 131
31.07.2015, 14:52  [ТС] 11
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Ну или как писал XRoy - юзай API. - самый адекватный способ.
Еслиб я знал как его юзать ...
Ну а так : спасибо за помощь , буду пробовать
0
870 / 720 / 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2015, 16:14
Помогаю со студенческими работами здесь

Игнорирование куска кода
Добрый день! Подскажите, пожалуйста, почему программа может игнорировать часть кода? У меня есть...

Удаление куска кода
Вечер добрый! Есть 3 с лишнем тысячи html файлов, нужно в каждом удалить тег img и все, что в нем...

Совместить два куска кода
Здравствуйте! Помогите пожалуйста совместить два куска кода Первый кусок: проверка если на...

Состыковать два куска кода?
1 кусок кода (Правда этот год я еще не проверил будет ли он работать на моей теме) 2...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru