Помогите с парсингом

p0s1t1ve

Client
Регистрация
16.03.2015
Сообщения
15
Благодарностей
0
Баллы
1
Пытаюсь спарсить страницу и получить данные по названию, размерам, цене, ссылкам на изображения и т.д. Проблема в том, что код страницы нестандартный и неясный для меня. Ссылка на страницу http://www.anfisa-bigsize.com/#!--113/c4dz Пробовал через конструктор действий- get - не вышло. Помогите пожалуйста!
 

deksi

Пользователь
Регистрация
20.08.2015
Сообщения
37
Благодарностей
1
Баллы
8
Напиши точный список какие именно данные, я попробую сделать.
 

p0s1t1ve

Client
Регистрация
16.03.2015
Сообщения
15
Благодарностей
0
Баллы
1
Название
Размеры
Цена за 1 единицу
Количество в линейке (необязательно)
Вес линейки
Материал
Ссылки на большие фото
 

deksi

Пользователь
Регистрация
20.08.2015
Сообщения
37
Благодарностей
1
Баллы
8
Данные на выходе хочешь получать в виде txt файла или excel? И еще вопрос, данные должны быть в формате Название Рубашка "клетка" или Рубашка "клетка"?
 

p0s1t1ve

Client
Регистрация
16.03.2015
Сообщения
15
Благодарностей
0
Баллы
1
Да вообще желательно сам способ парсинга получить, потому что мне нужно весь сайт спарсить и получить его в эксель файле. Соответственно название столбца будет "Название", а под ним Рубашка "клетка", Платье "Светлана" и т.д.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 267
Благодарностей
5 853
Баллы
113
Данные нужно парсить регулярками и складывать в таблицу. Например:
это регулярка для парсинга названия - (?<=<span\ style="font-size:24px;">).*?(?=</span></span></h1>)
Результат нужно сложить в переменную.
Аналогичным образом парсится размеры, цена и т.п. А затем нужно сложить все эти данные из переменных в таблицу добавлением строки.
Инструкции по составлению рег. выражений смотрите здесь - http://zennolab.com/wiki/ru:creating-a-regular-expressions
 
  • Спасибо
Реакции: p0s1t1ve

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
(?<=<span\ style[^<]+">).*?(?=\ арт\.) // Название
(?<=Размеры[^<]+;-).*?(?=\ <) // Размеры
(?<=Цена\ за\ 1\ единицу:\ ).*?(?=</span>) // Цена за 1 единицу
(?<=Количество\ в\ линейке[^<]+;-).*?(?=</span>) // Количество в линейке
(?<=Вес\ линейки:\ ).*?(?=</span>) // Вес линейки
(?<=Материал:\ ).*?(?=</span>) // Материал
(?<=src=").*?\.jpg // Сылки на фото
 
  • Спасибо
Реакции: p0s1t1ve

p0s1t1ve

Client
Регистрация
16.03.2015
Сообщения
15
Благодарностей
0
Баллы
1
(?<=<span\ style[^<]+">).*?(?=\ арт\.) // Название
(?<=Размеры[^<]+;-).*?(?=\ <) // Размеры
(?<=Цена\ за\ 1\ единицу:\ ).*?(?=</span>) // Цена за 1 единицу
(?<=Количество\ в\ линейке[^<]+;-).*?(?=</span>) // Количество в линейке
(?<=Вес\ линейки:\ ).*?(?=</span>) // Вес линейки
(?<=Материал:\ ).*?(?=</span>) // Материал
(?<=src=").*?\.jpg // Сылки на фото
Спасибо, получал до этого исходный код через get-запрос, там вообще какая то чушь была. Получилось через данные -взять source
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
надеюсь разберёшься
Код:
string res = project.Variables["response"].Value;
var res1 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=<span\sstyle[^<]+"">).*?(?=\sарт\.)").Value;
project.Variables["name"].Value = res1; // название
var res2 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Размеры[^<]+;).*?(?=\s<)").Value;
project.Variables["size"].Value = res2; // размеры
var res3 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Цена\sза\s1\sединицу:\s).*?(?=</span>)").Value;
project.Variables["unit"].Value = res3; // цена за единицу
var res4 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Количество\sв\sлинейке[^<]+;).*?(?=</span>)").Value;
project.Variables["the_number"].Value = res4; // количество в линейке
var res5 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Вес\sлинейки:\s).*?(?=</span>)").Value;
project.Variables["weight"].Value = res5; // вес линейки
var res6 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Материал:\s).*?(?=</span>)").Value;
project.Variables["material"].Value = res6; // материал
//парсим сылки на и сохраняем в список
var regex = new Regex(@"(?<=src="").*?\.jpg");
var list = project.Lists["OutputList"];
regex.Matches(res).Cast<Match>().ToList().ForEach(m=>list.Add(m.Value));
 
  • Спасибо
Реакции: mux76

p0s1t1ve

Client
Регистрация
16.03.2015
Сообщения
15
Благодарностей
0
Баллы
1
В исходном коде отображается только ссылка на одно изображение (которое появляется в слайде во время выгрузки кода). Как получить остальные?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
OutputList -- это список, сам лично проверял, все сылки там
 

p0s1t1ve

Client
Регистрация
16.03.2015
Сообщения
15
Благодарностей
0
Баллы
1
надеюсь разберёшься
Код:
string res = project.Variables["response"].Value;
var res1 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=<span\sstyle[^<]+"">).*?(?=\sарт\.)").Value;
project.Variables["name"].Value = res1; // название
var res2 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Размеры[^<]+;).*?(?=\s<)").Value;
project.Variables["size"].Value = res2; // размеры
var res3 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Цена\sза\s1\sединицу:\s).*?(?=</span>)").Value;
project.Variables["unit"].Value = res3; // цена за единицу
var res4 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Количество\sв\sлинейке[^<]+;).*?(?=</span>)").Value;
project.Variables["the_number"].Value = res4; // количество в линейке
var res5 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Вес\sлинейки:\s).*?(?=</span>)").Value;
project.Variables["weight"].Value = res5; // вес линейки
var res6 = System.Text.RegularExpressions.Regex.Match(res, @"(?<=Материал:\s).*?(?=</span>)").Value;
project.Variables["material"].Value = res6; // материал
//парсим сылки на и сохраняем в список
var regex = new Regex(@"(?<=src="").*?\.jpg");
var list = project.Lists["OutputList"];
regex.Matches(res).Cast<Match>().ToList().ForEach(m=>list.Add(m.Value));
Я разобрался , спасибо. Но последняя регулярка со ссылками не совсем корректно работает. Она выгружает два изображения: одно ненужное, второе - только то, что мелькает в слайде во время считывания кода.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
В исходном коде отображается только ссылка на одно изображение (которое появляется в слайде во время выгрузки кода). Как получить остальные?
если про первый вариант, то брать всё и в список
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
у меня всё нормально
2015-08-21_003158.png
 
  • Спасибо
Реакции: p0s1t1ve

p0s1t1ve

Client
Регистрация
16.03.2015
Сообщения
15
Благодарностей
0
Баллы
1
Спасибо, разобрался
 

deksi

Пользователь
Регистрация
20.08.2015
Сообщения
37
Благодарностей
1
Баллы
8
Вот сделал простенький пример, шаблон через регулярку парсит значение каждого параметра и кладет в отдельную переменную.
Список переменных:
  • name-название товара
  • size-размер
  • price-цена
  • number-количество в линейке
  • weight-вес линейки
  • fabric-материал
С помощью переменных сможешь записать все данные в таблицу.
На счет картинок будет сложновато, так что я с ними не возился!
Вот качай и допилишь под себя https://yadi.sk/d/mNRKfwKxiZXb8
Могу в принцыпе сделать полностью шаблон такой ка тебе нужно но это уже не бесплатно.
 
  • Спасибо
Реакции: p0s1t1ve

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