Автор Тема: Как грепнуть маркет яндекс {РЕШЕНО}  (Прочитано 869 раз)

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Участник
  • *
  • Сообщений: 314
Доброго дня всеведающим!
Мониторю раздел Яндекс маркета вручную, по сохранённые ссылкам, в которых забиты фильтры на интересующий товар. Хочу сделать скрипт, периодически запрашивающий и сохраняющий нужную информацию в файл. Столкнулся с тем, что информация, которую links выводит на экран читается отлично, но если сделать дамп то вылазит нечитаемое месиво ссылок. Отсюда вопрос, как можно сохранить информацию с экрана в текстовый файл в том виде, "как вижу" на экране.
« Последнее редактирование: 11.12.2015 09:45:36 от Kirikekeks »
Ламер

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
Re: Как грепнуть маркет яндекс
« Ответ #1 : 08.12.2015 13:29:49 »
Доброго дня всеведающим!
Мониторю раздел Яндекс маркета вручную, по сохранённые ссылкам, в которых забиты фильтры на интересующий товар. Хочу сделать скрипт, периодически запрашивающий и сохраняющий нужную информацию в файл. Столкнулся с тем, что информация, которую links выводит на экран читается отлично, но если сделать дамп тот вылазит нечитаемое месиво ссылок. Отсюда вопрос, как можно сохранить информацию с экрана в текстовый файл в том виде, "как вижу" на экране. Ошибки дома исправлю
elinks --dump -no-numbering http://altlinux.ru | sed '/^References$/,$d'
Андрей Черепанов (cas@)

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Участник
  • *
  • Сообщений: 314
Re: Как грепнуть маркет яндекс
« Ответ #2 : 08.12.2015 22:08:54 »
elinks --dump -no-numbering http://altlinux.ru | sed '/^References$/,$d'
Так не получилось. Подробно изложу вопрос:
Допустим есть у Вас мечта, купить квартиру купить новый велосипед, взамен украденного 28 лет назад. Не сказать, что за эти годы на руках не оказывалось нужной суммы, но всегда находились мечты мечтее этой, отбрасывающие покупку велосипеда за кредитное будущее.  Ну и ясно, что он должен быть такой-же, то есть зелёный, дорожный, с большими колёсами. Можно не аист. И желательно с планетарной втулкой. Дядя Яша в своём маркете способен подбирать именно такой:
https://market.yandex.ru/catalog/55939/list?hid=91529&how=aprice&gfilter=2142357018%3A-1897526220&gfilter=2142357015%3A-2050523739&gfilter=2142356986%3A28~&gfilter=2141404573%3Aselect
но сегодня выбор маловат, дороговат и не зелёный.
А мечтать по-детски (то есть ежечасно) вы уже разучились.  И вот Вы сохраняете эту ссылку и периодически её запускаете:
 lynx https://market.yandex.ru/catalog/55939/list?hid=91529&how=aprice&gfilter=2142357018%3A-1897526220&gfilter=2142357015%3A-2050523739&gfilter=2142356986%3A28~&gfilter=2141404573%3Aselect
и ищете велосипед мечты за имеющиеся деньги:
Спойлер
Commencal Uptown Cromo 1 (2014)                                                               ▒
                                                                                              ▒
     * дорожный велосипед                                                                     ▒
     * рама: хроммолибденовый сплав                                                           ▒
     * колеса 29 дюймов                                                                       ▒
     * дисковые тормоза                                                                       ▒
     * жесткая рама                                                                           ▒
                                                                                              ▒
   Отзывы 1                                                                                   ▒
   Цены 3                                                                                     ▒
   Hyde Pro (2015)                                                                            ▒
   42 590 руб.                                                                                ▒
   до -25%                                                                                    ▒
   56 990 руб.                                                                                ▒
                                                                                              ▒
Cube Hyde Pro (2015)                                                                          ▒
                                                                                              ▒
     * дорожный велосипед                                                                     ▒
     * рама: алюминиевый сплав                                                                ▒
     * колеса 28 дюймов                                                                       ▒
     * ободные тормоза                                                                        ▒
     * жесткая рама                                                                           ▒
                                                                                              ▒
   Отзывы 1                                                                                   ▒
   Цены 1                                                                                     ▒
   Hyde Race (2015)                                                                           ▒
   69 590 руб.                                                                                ▒
                                                                                              ▒
Cube Hyde Race (2015)                                                                         ▒
                                                                                              ▒
     * дорожный велосипед                                                                     ▒
     * ременной привод                                                                        ▒
     * рама: алюминиевый сплав   

Но он не мужской, или дорогой, или не зелёный.
И тогда возникает желание сохранить вывод в текстовый обычный файл, и грепать конкретную строку - зелёный. И если таковая найдётся, то автоматически отправлять на почту "есть велосипед мечты!".
В самом lynx можно запустить ссылку, получить обновлённые данные и даже распечатать их в файл, который успешно грепается.
И вроде всё ясно теоретически, но есть трудности:
сначала сама команда не проходит:
lynx https://market.yandex.ru/catalog/55939/list?hid=91529&how=aprice&gfilter=2142357018%3A-1897526220&gfilter=2142357015%3A-2050523739&gfilter=2142356986%3A28~&gfilter=2141404573%3Aselect
[2] 10993
[3] 10994
[4] 10995
[5] 10996
[6] 10997
[3]   Готово            how=aprice
и не выдаёт желаемый результат, как под спойлером.
man lynx /config = lynx.cfg
Иду смотреть туда но находится файл поближе .lynxrc а там всё очень красиво под русского ламера расписано:
Спойлер
# accept_all_cookies позволяет Lynx автоматически принимать все cookie.
# По умолчанию эта опция установлена в "FALSE", что будет запрашивать
# подтверждение для каждого cookie.  Установите accept_all_cookies в "TRUE"
# чтобы принимать все cookie.
В общем не получается. А идея красивая, прошу тех кто разбирается дать совет.
ЗА ЗБЫЧУ МЕЧТ!
Ламер

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
Re: Как грепнуть маркет яндекс
« Ответ #3 : 09.12.2015 07:28:53 »
Краулеры пишутся на Perl. Или используйте wget c последующим разбором. И почииайте вводный курс по Bash.
Андрей Черепанов (cas@)

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Участник
  • *
  • Сообщений: 314
Re: Как грепнуть маркет яндекс
« Ответ #4 : 09.12.2015 08:24:23 »
вводный курс по Bash.
Вводный прочитал и завис, так как во вводном всё кажется простым, а в Продвинутом Менделя Купера уже ниасиливается. Некоего промежуточного курса на русском не нашёл.
Данный подход и инструментарий не помогут добиться поставленной цели? 
Ламер

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
Re: Как грепнуть маркет яндекс
« Ответ #5 : 09.12.2015 09:00:03 »
Нет. А в скрипте надо обращать внимание на окавычивание строк со спецсимволами, а частности, &. Помните, что этот символ делает в Bash?
Андрей Черепанов (cas@)

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Участник
  • *
  • Сообщений: 314
Re: Как грепнуть маркет яндекс
« Ответ #6 : 09.12.2015 09:51:16 »
Помните, что этот символ делает в Bash?
Всего не упомнишь, тут и фоновый режим, и И , и спасибо,
lynx 'https://market.yandex.ru/catalog/55939/list?hid=91529&how=aprice&gfilter=2142357018%3A-1897526220&gfilter=2142357015%3A-2050523739&gfilter=2142356986%3A28~&gfilter=2141404573%3Aselect'
Данную ссылку открывает в своём нормальном окне.  А если страниц в маркете три-четыре, то и ссылок соответственно столько-же, и их можно теперь воткнуть в переменные, и перебрать в цикле.

Краулеры пишутся на Perl. Или используйте wget c последующим разбором
Я и не претендую на место Гугля. "Мой мозг не много совершит ©" Но интересно.
        Если открытую страницу в lynx распечатать в файл, то вывод сохраняется, делается это просто нажатием клавиши P. Как бы ещё сохранить этот вывод прямо из командной строки?
            lynx -dump 'https://market.yandex.ru/catalog/55939/list?hid=91529&how=aprice&gfilter=2142357018%3A-1897526220&gfilter=2142357015%3A-2050523739&gfilter=2142356986%3A28~&gfilter=2141404573%3Aselect' > vel.dump.txt
             Сохраняет правильный вывод.  Остальное детали, в которых я с удовольствием поковыряюсь.
Спасибо!
Доковырялся:
ой...

   Нам очень жаль, но запросы, поступившие с вашего IP-адреса, похожи на автоматические.
   По этой причине мы вынуждены временно заблокировать доступ к поиску.

« Последнее редактирование: 09.12.2015 11:03:28 от Kirikekeks »
Ламер

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: Как грепнуть маркет яндекс
« Ответ #7 : 09.12.2015 13:27:55 »
А заэкранировать его никак нельзя?

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Участник
  • *
  • Сообщений: 314
Re: Как грепнуть маркет яндекс
« Ответ #8 : 09.12.2015 13:39:32 »
А заэкранировать его никак нельзя
Уже заэкранировал и получил промежуточный хороший результат но, доигрался, яндекс блокировал мой ip.
Ламер

Оффлайн him

  • Участник
  • *
  • Сообщений: 1 048
Re: Как грепнуть маркет яндекс
« Ответ #9 : 09.12.2015 14:15:26 »
man curl - может быть подойдет как инструмент.
а файл потом разбираете скриптами bash, например как я делаю, или perl, по идее лучше подходит..

Оффлайн him

  • Участник
  • *
  • Сообщений: 1 048
Re: Как грепнуть маркет яндекс
« Ответ #10 : 09.12.2015 14:21:26 »
яшка хитрый..
куки анализирует, ответы, запросы, заголовки. но говорят обмануть можно..