XMLHttpRequest cannot load http://toster.ru/user/DirecTwiX/questions. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://s.codepen.io' is therefore not allowed access.
Нелзя послать такой запрос, иначе тут был бы уже мильон спам-вопросов
Сергей: такое через копипаст тоже вставить можно, защитить себя можно параллельную модерацию, хотябы новых пользователей. Через парсинг по ключевым словам паразитам и так далее. Но это уже совсем не из темы вопроса.
DTX: ну скажем так, мой товарищ воспользовался этим злом, используя руби по минимуму, а потом просто в пхп экзек внешний код и туда все, что надо отправлял. Есть еще зло под названием гусь парсер, о его работе я пока слышал только в теории, сам не добрался пощупать. Но он на привычном js на стороне сервера. И нужно это лишь в действительности геморойных ситуациях, где надо к примеру без авторизации никуда, а она заумная, защищенная от ботов по самое не хочу. Или надо отправить что-то постом, а там куча динамических проверок через js подгружается и уследить за всеми ими ровно аду дебага чужих пьяных фантазий.
Николай Антонов, попробовал я ваш "кошмар". Ну да забавно наблюдать асинхронный вызов команд, но как только дело доходит до задачи выбрать неопределенное число страниц (табов по 10 элементов с кнопкой след страница) эта штука затухает. нет возможности выполнять .evaluate(){...}.click(){...} неопределенное число раз через цикл. а посему его хватает ой как не на много....
DTX: да пока эксперементирую, но выполнить сбор данных из таблицы с пагинацией на неопределенное число страниц я пока не смог, грубо говоря в найтмере ты должен указать сперва все действия, потом запустить исполнение. Если я к примеру точно знаю, что мне придется прочитать 10 страниц, то я без циклов могу выполнить .evaluate(){...}.click(){...} .evaluate(){...}.click(){...} .evaluate(){...}.click(){...}.... .evaluate(){...}.click(){...}.END().THEN(){обработка результата}, но если мне число страниц неизвестно, то я не могу замутить фор/вайл, так как вызов всего этого чудного добра идет в момент.end (вызывать этот метод можно лишь 1 раз). Сейчас правда пробую это обойти, в .evaluate(){ здесь полный доступ к странице, которую парсишь} хочу через coursor = getElementByID('ID'); coursor.click() запустить перелистывание всех страниц, работая как в обычной консоли браузера, но пока не выходит. Оно упорно не желает перелистывать страницы таким способом. Хотя в браузере все кушается на ура.... В целом еще дзен не познан, вот пытаюсь понять хороший ли это парсер или все же с ограничениями.
Виталий: А там сложно вообще? Чет примером не нашёл нормальных на сайте. Сколько js-файлов надо подключать?
Мб на codepen простенькую демку выложишь?) Я бы тоже поковырял)
DTX: короче как я написал делать не надо, все решается через генераторы. если в них завернуть и везде использовать yield, то очень даже рабочий вариант. можно даже сказать, это один из убийц великой мысли программистов, старающихся защитить свои сайтики от ботов....