Регулярка и запросы

  • Автор темы Автор темы soprano
  • Дата начала Дата начала

soprano

Client
Регистрация
25.08.2011
Сообщения
1 076
Реакции
1 336
Баллы
113
Делаю парсер на запросах, все получается, но телефон находится только по регулярке,
C#:
Развернуть Свернуть Копировать
foreach (HtmlNode value in col)//делаем перебор нод
{
string Phone = Regex.Match(resultGet, @"(?<="">\().*?(?=</p></div>)").Value;
}
А она в переборе не хочет работать, только один номер со страницы сохраняется несколько раз.
А как можно впихнуть регулярку в запросы?
 
Вы делаете перебор нод, а поиск идет в исходном коде страницы, причем только одного номера.
 
  • Оценить
Реакции: Castaneda
Вот так выглядит код
C#:
Развернуть Свернуть Копировать
 foreach (HtmlNode value in col)//делаем перебор нод
    {
        string Title = value.SelectSingleNode(".//h4[contains(@class, 'lemon--h4')]").InnerText.Trim().HtmlDecode();//выбрали содержимое ноды
                
         string Phone = Regex.Match(resultGet, @"(?<="">\().*?(?=</p></div>)").Value;
        string Link = Regex.Match(resultGet, @"(?<=""\ href=""/biz/).*?(?="")").Value;
    }
Мне посоветовали
получить в отдельную переменную текущую карточку товара (value) и уже из нее парсить номер. Только так с помощью регулярки можно получить номер телефона из текущей карточки товара.

Пробую так
C#:
Развернуть Свернуть Копировать
string PhonePattern = @"(?<="">\().*?(?=</p></div>)");
string Phone = new Regex(PhonePattern).Match(value).Value;

и так

C#:
Развернуть Свернуть Копировать
       string PhonePattern = (@"(?<="">\().*?(?=</p></div>)");
        string newValue = value.InnerText;
        var Phone = new Regex(PhonePattern).Match(newValue).ToString();

..не получается. В общем, туплю, опыта мало.. Прошу помощи.
 
Лучше страницу, откуда брать данные покажите
 
  • Оценить
Реакции: Castaneda
C#:
Развернуть Свернуть Копировать
https://www.yelp.com/search?cflt=dentists&find_loc=Chicago%2C%20IL&start=10
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)