Вакансии для вашего сайта

парсим вакансии с базы центра занятости, выводим модулем

#1 1 декабря 2013 в 16:32
Представляю вам модуль для вывода вакансий для вашего города. Парсятся данные с сайта trudvsem.ru.
Посмореть в работе модуль можете на моем портале г. Железнодорожного — http://жел-дор.рф.

Правда у меня версия cms — 1.9, но убрав из кода модуля конвертацию кодировки в win1251 можете спокойно
использовать и на UTF-ных версиях (1.10+).

Итак, для начала заходим на сайт трудвсем, выбираем вакансии и свой город, затем из адресной строки копируем ХЭШ вашего города.
у меня:
ссылка -
  1. http://trudvsem.ru/vacancies/Default.aspx?q=SURfUmVnaW9uV1AlM2Q1MCUyNklEX1JBX1dQJTNkNTAwMzcyOTMlMjZEYXRlRnJvbSUzZDAxLjA1LjIwMTIlMjZTb3J0QnlDb2x1bW4lM2Q2JTI2TWF4Um93cyUzZDI10
хэш —
  1. SURfUmVnaW9uV1AlM2Q1MCUyNklEX1JBX1dQJTNkNTAwMzcyOTMlMjZEYXRlRnJvbSUzZDAxLjA1LjIwMTIlMjZTb3J0QnlDb2x1bW4lM2Q2JTI2TWF4Um93cyUzZDI10
в архиве находим файл parcer.php, в нем переменную $start_url и меняем хэш (&page= НЕ ТРОГАЕМ).

меняем настройки подключения в файлах parcer.php и iparcer.php.

теперь кидаем куда захотим файлы simple_html_dom.php и parcer.php, и ставим в cron автозапуск parcer.php.
у меня стоит 3 часа, больше не стоит. там админ не любим, когда с него парсят, пришлось даже заголовки подделывать =)

теперь кидаем папку parcer в /includes/myphp/ и создаем модуль, в котором прописываем {ФАЙЛ=parcer/iparcer.php}.

Все. скрипт parcer.php по хрону парсит вакансии для вашего города и запихивает в БД, а iparcer.php выводит из базы.
В коде вроде все понятно и доступно, меняйте как хотите. Если есть вопросы — пишите.

P.S.: я соблюдаю копирайт сайта трудвсем, поэтому вывожу ссылку на оригинал. Оставлять ли её — Ваше решение.
Прикрепленный файл
parcer_duk9f.rar 15 Кб
#3 15 декабря 2013 в 01:30
Ошибка "Соединение установлено!Invalid query: INSERT command denied to user 'u5566455_321e'@'localhost' for table 'short'"
Как решить?
И еще вопрос: как убрать из кода модуля конвертацию кодировки в win1251?

Спасибо, за классный парсер. Нужная вещь.
#4 15 декабря 2013 в 12:56


Ошибка "Соединение установлено!Invalid query: INSERT command denied to user 'u5566455_321e'@'localhost' for table 'short'"
Как решить?
И еще вопрос: как убрать из кода модуля конвертацию кодировки в win1251?

Спасибо, за классный парсер. Нужная вещь.

GoodNet

1. ошибка означает, что пользователю u5566455_321e запрещено выполнять команду INSERT в таблице short. Это можно выставить в настройках хостинга — mysql и пользователи.

2. заменяем в файлах parcer и iparcer строки:
  1. mysql_query('SET NAMES cp1251_general_ci');
  2. mysql_query('SET character_set_client = cp1251');
  3. mysql_query('SET character_set_connection = cp1251');
  4. mysql_query('SET character_set_results = cp1251');
на
  1. mysql_query('SET NAMES utf8');
  2. mysql_query('SET character_set_client = utf8');
  3. mysql_query('SET character_set_connection = utf8');
  4. mysql_query('SET character_set_results = utf8');
далее в файле parcer меняем строки
  1.  
  2. $url = iconv("UTF-8", "Windows-1251", $a_data[$a_counter]);
  3. $prof = iconv("UTF-8", "Windows-1251", $td->plaintext);
  4. $a_counter++;
  5. }
  6. if ($fast_counter == 4)
  7. $money = iconv("UTF-8", "Windows-1251", $td->plaintext);
  8. if ($fast_counter == 5)
  9. $date = iconv("UTF-8", "Windows-1251", $td->plaintext);
на
  1.  
  2. $url = $a_data[$a_counter];
  3. $prof = $td->plaintext;
  4. $a_counter++;
  5. }
  6. if ($fast_counter == 4)
  7. $money = $td->plaintext;
  8. if ($fast_counter == 5)
  9. $date = $td->plaintext;
все вроде.
можно ещё файлы сохранить в кодировке UTF-8
#5 29 января 2014 в 19:56
а задачу CRON создавать в админке сайта или в админке своего хостинга?

если в админке своего сайта, то там указать путь км файлу и частоту выполнения и все?
#6 29 января 2014 в 21:36
круто
#7 30 января 2014 в 07:18
Вот так настроил CRON


Вот так модуль создал


Модуль на сайте выводит: Файл "/includes/myphp/parseriparser.php" не найден!

Где-то теряет слеш… Что делать?
#8 30 января 2014 в 16:06
rpo, у меня тоже ошибка nvalid query: INSERT command denied to user… (ставлю на 1.10.3)
Хостер спрашивает: приведите текст запроса? Что мне им написать? спасибо.
#9 30 января 2014 в 16:25
Хостер сказал: у Вас вообще нет таблицы с названием short, соответственно такой запрос
и не должен работать)))

Может кто глянет парсер? Пом моему там есть лишнее
  1. $q = "INSERT INTO `u1016310_fooflo`.`short` (`id`, `url`, `prof`, `money`, `date`)
Вот это для меня странно выглядеть u1016310_fooflo. Может я и ошибаюсь))
#10 30 января 2014 в 19:56


Хостер сказал: у Вас вообще нет таблицы с названием short, соответственно такой запрос
и не должен работать)))

Может кто глянет парсер? Пом моему там есть лишнее

  1. $q = "INSERT INTO `u1016310_fooflo`.`short` (`id`, `url`, `prof`, `money`, `date`)
Вот это для меня странно выглядеть u1016310_fooflo. Может я и ошибаюсь))

rdimrs

поправил у себя — поправил имя БД и создал таблицу short. но в нее чот не парсится ничего(

создатель отзовись — без тебя никак)
#11 7 февраля 2014 в 09:06
Блин да что такое. Написиал свой парсер на другой сайт с использованием библиотеки simple_html_dom.php — все работает!

Помогите разобраться с этим парсером! Мне не надо в БД вставлять мне просто хотя бы вывести что он напарсил.
#12 9 февраля 2014 в 17:07
Может у кого есть рабочий парсер по работе с любыми крупными серверами?
#13 11 февраля 2014 в 02:41

Модуль на сайте выводит: Файл "/includes/myphp/parseriparser.php" не найден!

somik
та же фигня. v1.10.3
готов заплатить за рабочее решение этого модуля под v1.10.3
#14 11 февраля 2014 в 10:02
Андрей5, у меня заработал парсер. Во первых нужно сделать запрос. В бд
  1. CREATE TABLE IF NOT EXISTS `short` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `url` varchar(250) NOT NULL,
  4. `prof` varchar(250) NOT NULL,
  5. `money` varchar(250) NOT NULL,
  6. `date` varchar(250) NOT NULL,
  7. PRIMARY KEY (`id`),
  8. UNIQUE KEY `id` (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Во вторых: файл кидать в includes/myphp/ без папки и в модуле вызывать его {ФАЙЛ=iparcer.php}.
И все заработает)

Спасибо помог Amurland.
#15 11 февраля 2014 в 13:37


Может у кого есть рабочий парсер по работе с любыми крупными серверами?

Erwin
например какие крупные сервера?

та же фигня. v1.10.3
готов заплатить за рабочее решение этого модуля под v1.10.3

Андрей5
пиши в личку помогу чем смогу. написал уже два парсера.

Кстати сайт trudvsem сам парсит объявления из сайтов гос-й службы занятости и => не является первоисточником.
Я спарсил вакансии с сайта биржы труда своего региона.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.