Casperjs

Jan. 24th, 2017 01:40 pm

Пощупал. Отмечу пару моментов.

  • Гораздо корректнее обходится с памятью. Жрет потихоньку, но не в таких объемах как Zombie, и способен обработать гораздо большее число страниц.
  • Забудьте о ваших амбициях. Страницы посещаются последовательно, одна за другой. Нет возможности параллельно запустить загрузку по 10 штук.
  • Периодически крепко задумывается о чем-то своем, девичьем. Кажется все, умер… Однако смотришь, ожил и пошел дальше.
  • В общем, ленивое такое привидение, никуда не спешит.
  • Программа пишется на JavaScript, также как в обычной Node.js подключаются модули и т.п. Это создает опасную иллюзию, что работаешь в обычной ноде. Но это не так. Некоторые типовые модули имеют непривычный API, например fs, process  и пр. Некоторые модули загружаются и нормально (или почти нормально) работают, другие не работают принципиально.
  • Нужно следить за контекстом – например часть функций можно выполнять в контексте загружаемой страницы, соответственно они не имеют доступа даже к тем модулям, которые удалось подключить. Приходится забыть, например, про lodash, и вспоминать нативные методы работы с массивами и т.п.
  • Документирован лучше чем Zombie

В целом, для серьезного тестирования Casper.js подходит лучше чем Zombie. Для разных извращений он подходит не очень, но тоже лучше. Если можно обойтись без имитации браузера – лучше обойтись старым добрым request.

Надежды на естественный способ продвижения моего сервиса покерных чартов изначально не было никакой. Я сдохну к тому времени, когда поисковые системы сочтут его достойным внимания. Но есть места, где табунами ходят нужные мне люди.

Это конечно покерные форумы. Но их владельцы очень не любят когда кто-то куда-то уводит их посетителей. Так что этот источник весьма ограниченный.

Ну ладно, еще есть твиттер, в котором достаточно просто отфильтровать человеков по интересам. Причем конкретно в отношении покера есть прекрасный способ отфильтровать именно живых человеков, боты мне нафиг не усрались. Одна маленькая проблема. Нет, две. Да их дохера… Но суть одна: твиттер тоже много чего не любит. Подписался на 80+ человек за 80 секунд? Ой, ты наверно бот какой-то, давай-ка мы тебя забаним.  Отправил подряд 15 похожих сообщений разным пользователям? Отдохни, сходи покурить… мы любим своих пользователей и не позволяем делать массовые рассылки.

Что ж… на любую хитрую жопу есть хуй с винтом. Но оставлю я вас пока на закуску. А потренируюсь на кошках ЖЖ. Да, стыд мне и позор, я снова завел блог на ЖЖ. Сермяжная правда жизни – там есть огромная аудитория. Здесь – 3 калеки.

Естественно, никакой политики там у меня не будет. И личных данных не будет. А также матов, оскорбления нежных религиозных чувств и прочего попрания УК РФ. 

Будет голая, беспринципная коммерция. А потому я намерен пуститься во все тяжкие, надрачивать топ, СК, плодить ботов и участвовать во френдомарафонах, в общем борьба без правил. Сегодня добавил во френды 100 шт таких же беспринципных, кто френдит все что шевелится… и чой-то приуныл. Вот делать больше нечего, кроме как тыкать в кнопочки самому. Тут и обезьяна справится. Или зомби…

Вот с zombie и начнем. Задача относительно простая

  1. пройти аутенфикацию
  2. зайти в список друзей и вытянуть его (несколько страниц)
  3. пройтись по списку ссылок на френдомарафоны, вытянуть имена всех комментаторов (опять же – может быть несколько страниц)
  4. сформировать итоговый список, чтобы не пытаться добавить человека дважды
  5. добавить всех

Сейчас я где-то в середине второго пункта. Вытащил список друзей, но только одну страницу. Zombie прекрасен своими возможностями, но документация ужасна. Ее практически нет.

Update 1: п.2 пройден. Мне немного попортили кровь какие-то левые френды обнаруженные скриптом в моем списке, но уточнение селектора для выборки решило эту проблему. 131 штука detected

Update 2: Явно видно что движок ЖЖ делала куча народу. Один код генерит относительные ссылки, другой абсолютные. Куча ошибок которые никто не правит. Потому что тронь – рассыплется.

Update 3: п.3 пройден наполовину. Вытаскиваю комментаторов к одному посту

Update 4: сюрприз. В ЖЖ по меньшей мере 2  принципиально разных дизайна блога. Я имею ввиду, конечно, не шрифты и цветовую гамму. В одном комментарии грузятся сразу . А в другом подгружаются динамически и формируются скриптом прямо на странице.  И похоже 2 это не конечная цифра, есть еще какие-то отличия. Я сейчас одним глазом смотрю на вывод моего скрипта – на некоторых страницах он комментарии не видит :(

Ну хотя бы с п.4 проблем не ожидается.

Update 5: Оккей… на 6 блогов 3 разных способа оформления комментариев и их пагинатора. Это блядь феерический пиздец, за это нужно отрывать людям руки. По самую жопу, из которой они растут.

P.S. Блядь пиздец, сколько же у них ошибок…

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

P.P.P.S. Может для полного счастья с async разобраться, чтобы процесс шел параллельно? А то большую часть времени скрипт ждет пока очередная страничка загрузится

Profile

pokerfrog

February 2017

S M T W T F S
    1 2 34
567891011
12131415161718
19202122232425
262728    

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 13th, 2025 07:10 am
Powered by Dreamwidth Studios