Вчера учил промисы с новым асинком и научился писать матерные предложения на ES6/7, он это позволяет делать, я серьёзно ))
XPraptor, с другой стороны, не совсем понятен твой метод отсева ботов, вчара анализировал как работает клоудфлар и вспомнил как кнопками с задержкой обходили бан, по итогу бот не ждёт как пользователь, а то что ты накрутил с событиями...не думаю что это настолько надёжно работает, по крайней мере кнопка с задержкой работала нормально и клоадфлар тоже работает и именно за счёт таймаута. Если хорошо разираешься в JS неплохо было бы если бы показал как из mysqljs синхронно вытаскивать возврат, потому что писать эти небоскрёбы из колбэков не вариант.
const axios = require('axios')const Nightmare = require('nightmare')const cheerio = require('cheerio')const fs = require('fs')const mysql = require('mysql')const nightmare = Nightmare({ show: true, gotoTimeout: 30 * 1000, // in ms waitTimeout: 30 * 1000 // in ms});const url3 = 'https://site.com/';function nightmareGetPage2(url) { nightmare .goto(url) .wait('body') .evaluate(() => document.querySelector('body').innerHTML) .end() .wait(10 * 1000) .then(responce => { console.log(getData(responce)); }) .catch(err => { console.log(err); });}nightmareGetPage2(url3)
Парсит сайт с клаудфларом, поднимался вопрос недавно, типа клауд нереально пропарсить и всё такое... реально.---------- Добавлено 23.10.2019 в 10:53 ----------
Ну прекрати эти жалкие демагогии, тебе пытаются пояснить что твоя программа обычная обёртка над API Selenium Server, на что ты срываешься к странную полемику класса демагогии о прописных истинах))
Мой "бот" с хорошей архитектурой и вакуумом говорит что тебе стоит попить сока вчерашних арбузиков и успокоится ))
Спасибо за ценную информацию, я и не подозревал об этом!!
XPraptor, понимаешь... как бы тебе объяснить, на самом деле существует всего один достоверный признак, позволяющий однозначно отличить бота от человека, если этот бот конечно не чья-нибудь содержанка ))
#Step6.3
Для продолжения для работы с Wordpress необхимо начать работу с mySQL, а это стандартный модуль, да можно было бы использовать старые функции, но зачем если современное программирование состоит на 90% из умения работать с официальной докумментацией. Почему именно официальной с сайтов издателей? Потому что иначе в современном мире лулзов и дезинформации вам просто бы забили голову всяким бредом.
Далее необходимо будет подключить данный модуль, установить вордпресс локально и перенаправить хранилище в которое сохраняется текст в него.
https://github.com/mysqljs/mysql
#Step 6.2
Прежде чем начать заниматься адским трэшем с современной разработкой предлагаю допилить первый скрипт до уровня спина/доргена с отгрузкой в вордпресс, там осталось буквально 2 шага дописать, в итоге кому не интересно -- будут юзать и допиливать скрипт допотопной версии, оценят компактность кода ноД итд... остальные гоу на следующий уровень с микросервисной архитектурой))
#Step 7.1
Раскидав проект по модулям с export/import получаем такую фигню в консоль:
\parser\app.js:13import { bar, foo } from './se/google'; ^SyntaxError: Unexpected token { at Module._compile (internal/modules/cjs/loader.js:872:18) at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10) at Module.load (internal/modules/cjs/loader.js:790:32) at Function.Module._load (internal/modules/cjs/loader.js:703:12) at Function.Module.runMain (internal/modules/cjs/loader.js:999:10) at internal/main/run_main_module.js:17:11
Этот баг возникает по причине того что Node по прежнему не научился работать с ES6 синтаксисом (es5/es6/es7 -- разные спецификации яваскрипта,то есть у него как и у явы версионный хэлл своего рода). Из-за этой фигни с синтаксисами в модном яваскрипте появилось тоже очень модное слово -- "транспиллер", и этот тоже модный префикс "транс", вбщем он перепиливает код в синтаксис допотопного ES5 который понимают бровсеры и не тупит нодЭ. Чтобы осилить следующий шаг нужно поставить попсовый транспиллер -- это бабел (Babel). Ставим эту херню:
npm i --save-dev @babel/core @babel/cli @babel/node @babel/preset-env
Понимаете, на мой взгляд затонутая в данной "перепалке" проблематика намного шире чем то что назыаают вахтёрством, дело в том что все приоритеты управления и власти они так или иначе имеют технологическую форму, а в данном топике идёт последовательное раскрытие современных технологий, чему конфликтующий товарищ пытается всеми способами препятствовать.