Сбор ссылок на обьявления

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
355
Благодарностей
40
Баллы
28
Здравствуйте!
Пишу свой первый шаблон, и уже возникают трудности, с шарпом у меня тоже беда

В общем есть доска обьявлений о продаже автомобилей, я кубиками сделал заход на страницу, указал в фильтрах поиска "Легковые транспортные средства" и "показывать 200 обьявлений на странице" (200 это макс). И мне нужно выдрать все ссылки на эти обьявление поочереди, и вписать их в эксель таблицу в один столбик. Но нужно отфильтровать ненужные ссылки так как там есть еще рекламные обьявления и прочая муть, примечательно что все нужные мне обвявления начинаются на www.site.com/usedcard/id111111 ну и соответственно ИД у всех разные, Как написать регулярку что бы выдрать все обьявления с site.com/usedcars/ поочередно?

Нужно это будет для того, что бы бот после сбора ссылок переходил по каждой из них и собирал все данные в таблицу об обьявлении, но обьявлений на сайте более 20к, страниц тоже много, а сами страницы не пронумерованы, только "Страница назад" "страница вперед"

Заранее спасибо за ответы
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
Регуляркой вида
/usedcard/id.*
Собрать все совпадения в список
Далее бери строку из списка с удалением и добавляй к ней домен - получишь ссылку для перехода на страницу с объявлением.
 
  • Спасибо
Реакции: JanCarlo

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
355
Благодарностей
40
Баллы
28
Регуляркой вида
/usedcard/id.*
Собрать все совпадения в список
Далее бери строку из списка с удалением и добавляй к ней домен - получишь ссылку для перехода на страницу с объявлением.
Хм, вроде сработало но много мусора запилило мне в таблицу -
Код:
/usedcars/2743088" class="small-image"><img src="https://img1.auto24.ee/auto24/160/064/107470064.jpg" alt="" style="width:74px;height:56px;padding:10px 13px;display:block;border:1px solid #cecece"></a></td><td class="make_and_model"><a href="/usedcars/2743088">Mazda 323 Facelift 1.6 72 кВ</a><div class="extra">169&nbsp;000&nbsp;км<span>&nbsp;</span>хетчбэк<span>&nbsp;</span>передний привод</div><div class="commercial"></div></td><td class="auction_ttl"></td>
а мне бы как то сделать так, что бы чистая ссылка была скажем с http://site.com/usedcars/777777

эта очистка тоже регуляркой какой то делается, если брать из списка?
в любом случае спасибо)
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
Хм, вроде сработало но много мусора запилило мне в таблицу -
сначала возьми регулркой блок кода страницы в котором есть ссылки на объявления, потом из него соберешь все ссылки на объявления в список

а мне бы как то сделать так, что бы чистая ссылка была скажем с http://site.com/usedcars/777777
бери из списка в переменную - далее через обработку текста подставь взятой переменной домен = получишь ссылку требуемого вида
 
  • Спасибо
Реакции: JanCarlo

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
/usedcard/id.*
так конечно ты мусор соберёшь
если стоит кавычка в конце везде то так попробуй
/usedcard/.*?(?=")
 
  • Спасибо
Реакции: JanCarlo

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
забираешь все список, потом поочередно как тебе надо записывай в таблицу
я бы лично сначала полностью бы расспарсил а потом уже записывал

C#:
var html = instance.ActiveTab.DomText;

var regex = new Regex(@"/usedcard/.*?(?="")");
var linkList = project.Lists["linkList"];

regex.Matches(html).Cast<Match>().ToList().ForEach(m=>linkList.Add("http://site.com" + m.Value.Trim()));
 
  • Спасибо
Реакции: JanCarlo

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