Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Парсер для сайта  (Прочитано 3104 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн HubMX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Парсер для сайта
« : 10 Декабря 2011, 21:59:42 »
Всем привет !

Есть сайт

Есть файлик с сылками всех компаний /srv/txt/links-sec-ru.txt

Пример ссылки:
http://catalog.sec.ru/firms.cfm?fid=109927&bpg=6&s=почта

таких сыллок больше миллиона =( а нужно както вынуть инфу по каждой компании в файлик /srv/txt/get-sec-ru.txt пример как должно быть написанно ,

ВВВ Секьюрити ; ООО;630005, Новосибирск, ул. Королева, 40 ; (383) 219-51-91 ; http://www.perehvat.ru ; info@www-security.com#

делитель ;
заканчивается информация по каждой компании #

Помогите решить такую проблему , Заранее благодарен !

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #1 : 11 Декабря 2011, 16:58:58 »
только бюджет не озвучил.
заплати студенткам первокурсницам. так будет дешевле всего.

Оффлайн HubMX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #2 : 11 Декабря 2011, 17:20:56 »
Бюджета нет =( может кто поможет в написание парсера ?

Оффлайн DarkHacker

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #3 : 11 Декабря 2011, 17:29:18 »
А на чем написать нужно?

Оффлайн HubMX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #4 : 11 Декабря 2011, 17:30:34 »
bash,perl,php на выбор просто я не силен в програмирование =(

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #5 : 12 Декабря 2011, 07:23:01 »
Почему вместо того, чтобы написать "решите проблему за меня бесплатно", написано "помогите решить такую проблему"?
Для чего грабить чужой каталог (тем более в таких объёмах), ради развлечения?
Это такой намёк на необходимость делиться :)

Оффлайн DarkHacker

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #6 : 12 Декабря 2011, 10:57:05 »
Напишу за символическую плату) Наброски уже сделал если хочешь попробовать сам обьясняю,тот сайт что у тебя для отображения напределенных полей не имеет блоков,то есть логически нельзя сказать скрипту "Выведи имя",нужно парсить всё,выделять от позицииА до позицииБ и это выводить.

Вот пример (накидал за 2 минуты):

<meta http-equiv="content-type" content="text/html; charset=utf-8" />


<?
$input="links-sec-ru.txt";
$output="get-sec-ru.txt";
$file=file($input);

echo "<b>Count URL's:</b> ".count($file).";<br>";

for ($i=0;$i<=(count($file)-1);$i++)
{
//Получаем файл
$url=(file_get_contents($file[$i]));
//Имя
$pos = strpos($url, '<p style="padding-left: 20; padding-bottom: 5; padding-top:13;">');
$name= substr($url, $pos);
$pos = strpos($name,'</font><font style="font-size: 18; color: #888888">');
$name = substr($name, 0, $pos);
//Форма
$pos = strpos($url, 'Форма собственности:</font>');
$forma= substr($url, $pos);
$pos = strpos($forma,'</p>');
$forma = explode(":</font>",substr($forma, 0, $pos));
//Полный адрес
$pos = strpos($url, 'Полный адрес:</font>');
$adr= substr($url, $pos);
$pos = strpos($adr,'</p>');
$adr = explode(":</font>",substr($adr, 0, $pos));
//Телефон
$pos = strpos($url, 'Тел:</font>');
$tel= substr($url, $pos);
$pos = strpos($tel,'</p>');
$tel = explode(":</font>",substr($tel, 0, $pos));
//Сайт
$pos = strpos($url, 'Web-сервер:</font>');
$site= substr($url, $pos);
$pos = strpos($site,'</p>');
$site = explode(":</font>",substr($site, 0, $pos));
//мыло
$pos = strpos($url, 'E-mail(s):</font>');
$mail= substr($url, $pos);
$pos = strpos($mail,'</p>');
$mail = explode(":</font>",substr($mail, 0, $pos));

$data="".strip_tags($name).";".strip_tags($forma[1]).";".strip_tags($adr[1]).";".strip_tags($tel[1]).";".strip_tags($site[1]).";".strip_tags($mail[1])."#";
}

У меня реализовано уже все) (делал для себя,освежить знания :) )

Остаеться только в файл сохранить. Надеюсь сможешь сам реализовать? )

Оффлайн HubMX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #7 : 13 Декабря 2011, 22:35:02 »
DarkHacker
Создал файл index.php залил Ваш код ,запускаю скрипт http://127.0.0.1/parcer/ выдает :
Count URL's: 4660;

файл get-sec-ru.txt не наполняется , права стоят 777

запускаю в консоли пишет :

root@work:~# php /var/www/parcer/index.php

PHP Notice:  Undefined offset: 1 in /var/www/parcer/index.php on line 46

что я не так делаю ?

Спасибо огромное за помощь !

Пользователь решил продолжить мысль 13 Декабря 2011, 23:28:14:
Почему вместо того, чтобы написать "решите проблему за меня бесплатно", написано "помогите решить такую проблему"?
Для чего грабить чужой каталог (тем более в таких объёмах), ради развлечения?
Это такой намёк на необходимость делиться :)

Чем делиться , готов поделится !
« Последнее редактирование: 13 Декабря 2011, 23:28:14 от HubMX »

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #8 : 14 Декабря 2011, 01:07:16 »
Чем делиться , готов поделится !

Чем, чем? Деньгами! Можно пивом... :) Тебе время, а ты взамен деньги. Что не понятного? Поделись с тем, кто тебе помогает, т.е. делает за тебя.

что я не так делаю ?

Вот, не похоже, что ты это делаешь для самообразования. Или порадовать близкого человека.

Вот кому ты хочешь помочь? Бесплатно? Не похоже. Уже и файлик со ссылками, которых более миллиона имеешь. Понимая, что ты нихрена не понимаешь в программировании, а также учитывая то, что тот, кто написал скрипт для создания файла ссылок, не пишет дальше, можно придти к выводу,  что парсер для ссылок тебе написали на другом форуме, тоже за спасибо. Может я ошибаюсь?
« Последнее редактирование: 14 Декабря 2011, 01:14:52 от unimix »

Оффлайн HubMX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #9 : 14 Декабря 2011, 12:34:30 »
Чем делиться , готов поделится !

Чем, чем? Деньгами! Можно пивом... :) Тебе время, а ты взамен деньги. Что не понятного? Поделись с тем, кто тебе помогает, т.е. делает за тебя.

что я не так делаю ?

Базара нет пивком так тока за !

Вот кому ты хочешь помочь? Бесплатно? Не похоже. Уже и файлик со ссылками, которых более миллиона имеешь. Понимая, что ты нихрена не понимаешь в программировании, а также учитывая то, что тот, кто написал скрипт для создания файла ссылок, не пишет дальше, можно придти к выводу,  что парсер для ссылок тебе написали на другом форуме, тоже за спасибо. Может я ошибаюсь?

Вот, не похоже, что ты это делаешь для самообразования. Или порадовать близкого человека.


Ссылки я собрал сам , есть тонна программ , надо могу скинуть , я делаю это , да за деньги которые мне платят так как на меня свалили эту работу , если я чем могу помочь я помогаю .

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #10 : 14 Декабря 2011, 13:59:02 »
Значит, немного ошибся. А то, что я делаю, очень даже похоже на самообразование. =)

Вот, с поправками:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 14 Декабря 2011, 14:10:12 от unimix »

Оффлайн DarkHacker

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #11 : 14 Декабря 2011, 14:37:42 »
Вот так вот форум Ubuntu бесплатно решает любые порблемы!

Оффлайн HubMX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #12 : 14 Декабря 2011, 15:38:43 »
Блин если живете в Москве готов коньком заплатить !

Пользователь решил продолжить мысль 14 Декабря 2011, 15:40:06:
Значит, немного ошибся. А то, что я делаю, очень даже похоже на самообразование. =)

Вот, с поправками:
(Нажмите, чтобы показать/скрыть)

Не получается выдает , ;;;;;#

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Парсер для сайта
« Ответ #13 : 14 Декабря 2011, 21:27:00 »
Вот так вот форум Ubuntu бесплатно решает любые порблемы!

Любые? Это кто так заявлял, сам форум?

Если работник решает эту задачу вне своих должностных обязанностей или вне рабочего времени, то он должен получить оплату сверх оговоренного в трудовом договоре. Также работник может отказаться от выполнения данного поручения. В общем: фирма должна платить, а не работник. :)

Не получается выдает , ;;;;;#

Какое содержание файла "links-sec-ru.txt" (только не надо выводить всё :) 3 строчек достаточно)? Да и для начала работай с этими 3 ссылками.  Когда заработает, тогда и попытайся полный файл подставить.

На примере такого содержания:
http://catalog.sec.ru/firms.cfm?fid=109927&bpg=6&s=info@www-security.com

у меня работает.
« Последнее редактирование: 14 Декабря 2011, 21:36:38 от unimix »

Оффлайн HubMX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля

 

Страница сгенерирована за 0.072 секунд. Запросов: 25.