lokanaft

lokanaft

с Луны
+1314
Репутация
14717
Рейтинг
#1 Ищу парсер. Наполнение БД 16 октября 2012 в 15:25
Если там такой адрес, значит он уже в категории с названием города, спарсите категории сначала. Номера офисов на карте не проставишь, поэтому для определения координат берём город из категории, улицу и следующие за ней цифры. Вы сначала соберите все адреса строкой в базу, потом сами всё поймёте как их расшифровывать.
У меня была строка со словами и пробелами, в ней была и марка, и модель, и комплектация (которую надо было разбить ещё и на её название и двигатель). Прогоняя эту строчку и добавляя новые условия, я получил нужный мне результат.
#2 Ищу парсер. Наполнение БД 16 октября 2012 в 14:44
На пролёт запятых вообще до лампочки.
Значит пробиваете первый текст по списку стран, следующее по списку городов, цифра — это дом.
Или парсите в несколько этапов, сначала наполняете базу и только со строкой адреса, а затем перебираете всё постепенно, пока не достигните нужного результата.

Пока не добился нужного результата, приходилось добавлять новые условия, ибо не всё по полочкам.
  1. preg_match('|<title>Характеристики ([^\(]*)\(([^,]*),([^\)]*)\)([^<]*)<\/title>|is', $output, $head);
  2. preg_match('#<li class="selected"> <strong>([^<]*)<\/strong>(?:.*?)<br \/><strong>(?: <span class="price">([0-9\s]+)<span|)#is', $output, $prais);
  3. preg_match('#padding:0.2em 0.5em;font-size:93%;">(Снят)#is', $output, $proiz);
  4. preg_match('#padding:0.2em 0.5em;font-size:93%;">(Не продается)#is', $output, $prodazh);
  5. $harki['proiz'] = $proiz[1] ? 0 : 1;
  6. $harki['prodazh'] = $prodazh[1] ? 0 : 1;
  7. $harki['model'] = addslashes(trim(str_replace($prais[1], '', $head[1])));
  8. $harki['complekt'] = $prais[1];
  9. if(($proiz[1] || $prodazh[1]) && !$harki['complekt']){
  10. if(strpos($harki['model'], '.')){
  11. $harki['complekt'] = trim(substr($harki['model'], strpos($harki['model'], '.') - 2));
  12. $harki['model'] = addslashes(trim(substr($harki['model'], 0, strpos($harki['model'], '.') - 2)));
  13. }else{
  14. if(strpos($harki['model'], 'серия') && !strstr($harki['model'], 'Специальная серия') && !strstr($harki['model'], 'Особая серия')){
  15. $seriya = explode('серия', $harki['model']);
  16. $harki['model'] = $seriya[0].'серия';
  17. $harki['complekt'] = $seriya[1];
  18. }else{
  19. preg_match('|<h1>([^<]*)</h1>|is', $output, $h1);
  20. $h1 = trim($h1[1]);
  21. while(true){
  22. echo $h1.'='.$harki['model']."\n";
  23. if(strstr($harki['model'], $h1)){
  24. $harki['complekt'] = str_replace($h1, '', $harki['model']);
  25. $harki['model'] = $h1;
  26. break;
  27. }else{
  28. if(!strstr($h1, ' '))break;
  29. $h1 = trim(substr($h1, 0, strrpos($h1, ' ')));
  30. }
  31. }
  32. }
  33. }
  34. }
  35. $harki['pokolen'] = $head[2];
  36. $harki['goda'] = trim($head[3]);
  37. $goda = explode(' - ', $harki['goda']);
  38. if(strstr($goda[0],$goda[1]))
  39. $harki['goda'] = $goda[0];
  40. $harki['cena'] = $prais[2];
  41. preg_match('#(.*) ([^ ]*)#is', $harki['complekt'], $prais_com);
  42. $harki['complekt_dvig'] = $prais_com[1];
  43. $harki['complekt_name'] = $prais_com[2];
  44. if(strstr($harki['complekt_dvig'], 'Luxury')){
  45. $harki['complekt_dvig'] = str_replace('Luxury ', '', $prais_com[1]);
  46. $harki['complekt_name'] = 'Luxury '.$prais_com[2];
  47. }
  48. if(strstr($harki['complekt_dvig'], 'Специал')){
  49. $spec = explode('Специал', $harki['complekt']);
  50. $harki['complekt_dvig'] = $spec[0];
  51. $harki['complekt_name'] = 'Специал'.$spec[1];
  52. }
  53. if(strstr($harki['complekt_dvig'], 'Особ')){
  54. $spec = explode('Особ', $harki['complekt']);
  55. $harki['complekt_dvig'] = $spec[0];
  56. $harki['complekt_name'] = 'Особ'.$spec[1];
  57. }
#3 Ищу парсер. Наполнение БД 16 октября 2012 в 13:31
Разбиваем по запятым:
если г. — город,
ул. — улица,
после улицы дом,
много цифр — индекс,
остались два непонятных, но Уфа в России, поэтому республика нам ни к чему, проверяем оба этих поля на вхождение в список стран для парсинга и берём подошедшее.
Если вы парсите с разделов, то сначала пройтись по всей структуре и определить город этого раздела и смотреть уже только на конкретный адрес.
Если на странице есть карта с координатами, определяете адрес по апи.

Вы показываете самые чёткие и ровные примеры, которые спарсить на ура можно, а вы определите координаты и конкретный адрес моего примера?

Рассия. гор. Уфа дом на Набережной у аптеки, оф. Главный

lokanaft
#4 Ищу парсер. Наполнение БД 16 октября 2012 в 11:35
Если только так:

450087, Россия, г. Уфа, ул. Набережная, 57

Gumoff
и так:

Россия, г. Уфа, ул. Набережная, 57

Gumoff

То проблемы быть не должно, а вот если:
Рассия. гор. Уфа дом на Набережной у аптеки, оф. Главный
Тогда, да, проблемы laugh
#5 Ищу парсер. Наполнение БД 16 октября 2012 в 10:16
Не вижу ничего трудного в парсинге чего угодно даже для начинающего программиста. Конечно бывают проблемы в виде капчи, как например у туту.ру, но это не должно останавливать. На написание парсера уходит максимум 3 дня, а затем уже как получится, 10к характеристик авто я спарсил за 1 час, а вот 100к расписаний с туту ждал 2 недели через прокси сервера. scratch
#6 Безопасность движка, сбор средств, кто "за" ? 13 октября 2012 в 15:55
Ну что, по второму кругу, товарищи?
#7 Перестал работать поиск по русским буквам 11 октября 2012 в 19:54
А у меня Ё не ищет =(
#8 [ЗАКРЫТО] С кем лучше работать(контекст реклама) – бегун, яндекс, гугл ? 8 октября 2012 в 16:14

А можно и раз в три месяца

SJen
Боюсь у них там нету таких средств в наличии rofl
#9 [ЗАКРЫТО] С кем лучше работать(контекст реклама) – бегун, яндекс, гугл ? 8 октября 2012 в 12:24
Adsense банит с объяснениями, по крайней мере мне прислали на почту причину. По доходу в коммерческой тематике они примерно равны, просто на директ чаще кликают, но с меньшим срс…
#10 [ЗАКРЫТО] Яндекс деньги? 3 октября 2012 в 12:36
Проблема яда скорее в беспричинной блокировке средств. Было 2 кошелька, так оба по очереди и заблокировали.
А комиссию они вообще брать не должны, имея такие огромные средства в обороте они навариваются так, что они вообще плевали на доход с комиссии. Она лишь для отвода глаз как бы.
#11 Как заставить пользователей использовать всё по назначению? 30 сентября 2012 в 18:59
Вот именно благодаря по… истическому отношению администрации к происходящему на форуме, мой конкурент и самоликвидировался.
#12 Как заставить пользователей использовать всё по назначению? 30 сентября 2012 в 16:04

если ничего не портят, пусть делают, что хотят.

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

Не выход, потом все на "нормальные рельсы" поставить будет трудно ...

Madmax
Вот и я о том же.
#1 Как заставить пользователей использовать всё по назначению? 30 сентября 2012 в 13:47
Возникла такая ситуация, что получил на сайте толпу пользователей с закрывшегося форума. Так вот, они всё привыкли делать на форуме: и общаться, и статьи писать, и обзоры публиковать, и как торговую площадку использовать etc.
Они говорят, что им так просто удобно. Но ведь это неправильно. Имхо: форум для вопросов и обсуждения идей, блог для рассказов о чём либо, статьи — буки, доска объявлений и так понятно. Но нет, им надо всё скинуть в одну кучу и аккуратненько размазать это по десяткам страниц флуда...
Как вы думаете, что необходимо организовать, дабы использовать всё по назначению им было всё таки удобнее?
#13 [ЗАКРЫТО] InstantCMS 1.10 - к чему готовиться? 28 сентября 2012 в 18:50
Минона, вы хотите склеить все css и js в одно полотнище, а вы представляете себе вес этих файлов, когда человек зашёл информацию найти и сидит грузит библиотеки галерей, загрузчика файлов и тд. Когда он зашёл и загрузил долю, при переходе на следующие страницы он не будет тратить время на них и так постепенно соберёт всю коллекцию файлов.
#14 [ЗАКРЫТО] InstantCMS 1.10 - к чему готовиться? 27 сентября 2012 в 17:37
Непрочитанные темы с последнего посещения тоже быстро v
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.