Скоростная эмуляция браузера и действий пользователя

12
[Удален]
3521

Есть один сайт, на нем установлена специализированная CMS. Доступа к исходникам нет (зашифровано IonCube).

На сайт необходимо залить около 10 миллионов файлов, каждый файл представляет собой архив размером около 1 мб.

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

каждого файла отдельно. Это можно сделать для пары десятков, но не миллионов файлов.

Каким образом можно решить эту задачу? Пытался пользоваться программами по автоматизации и эмуляции действий пользователя, по записи действий мыши, но так работать невозможно.

Если действия воспроизводить очень быстро, процесс нарушается, например, просто не успевает открыться окно, т.к. мышка приезжает быстрее, чем оно загрузится.

Если каждый файл грузить с обычной скоростью, на это уйдет несколько лет…

Получается, что каждую секунду должно грузиться минимум по 1 файлу, тогда в час выйдет около 3600 файлов, а в день около 100.000.

Каким образом можно решить подобную задачу?

Ragnarok
На сайте с 25.06.2010
Offline
239
#1

Zakazchik2017, понять, как именуется каждый файл и где о нём создаются записи (например, в бд)? тогда можно запилить скрипт который всё сделает

//TODO: перестать откладывать на потом
ДП
На сайте с 23.11.2009
Offline
203
#2

Ну или вариант - написать специализированный постер. Если нужно только один запрос делать - это, наверно, не особо сложно.

totamon
На сайте с 12.05.2007
Offline
437
#3
Zakazchik2017:
Каким образом можно решить подобную задачу?

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

Zakazchik2017:
Пытался пользоваться программами по автоматизации и эмуляции действий пользователя, по записи действий мыши, но так работать невозможно.

зы. надеюсь сайт не на шаред хостинге? под 10М файлов нужен сервер или ВПС как минимум)

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
S1
На сайте с 15.09.2016
Offline
9
#4

PhantomJS - если умеете программировать на JS. Clickermann - если не умеете.

SEO анализ сайта (https://seo11.ru/)
AK
На сайте с 23.02.2009
Offline
117
#5
Если действия воспроизводить очень быстро, процесс нарушается, например, просто не успевает открыться окно, т.к. мышка приезжает быстрее, чем оно загрузится.

Imacros для firefox - если бесплатно.

[Удален]
#6
Ragnarok:
Zakazchik2017, понять, как именуется каждый файл и где о нём создаются записи (например, в бд)? тогда можно запилить скрипт который всё сделает

Вначале пытался подумать, как «подсадить» в базу, но тут есть несколько нюансов.

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

Помимо этого, сайт уже работает, в него идет активная запись новых файлов добавляемых пользователями, а параллельно что-то подсаживать в базу невозможно без остановки сайта (побьются id и структура).

totamon:
зы. надеюсь сайт не на шаред хостинге? под 10М файлов нужен сервер или ВПС как минимум)

Да там сервер с гигабитным каналом и дисковым массивом на десятки терабайт с аппаратным RAID-контролером.

totamon:
обратится к специалисту, фриланс или специальный раздел для вас единственный выход судя по

Да тоже пришел к такому же выводу. Уж задача больно тяжелая.

seo11:
Clickermann - если не умеете.

Буду пробовать

ant_key:
Imacros для firefox

Пробовал, не подошло. Не позволяет аплоадить файлы на автомате.

ValdisRu
На сайте с 02.10.2006
Offline
139
#7

хм а PHP + cURL не подходять?

Обалденный заработок на социальных сетях (https://goo.gl/Qtsq6M)
[Удален]
#8
ValdisRu:
хм а PHP + cURL не подходять?

Нет. Страница публикации материала содержит обфусцированный Javascript, работает на ajax, т.е. ее обязательно нужно как-то отрендерить в чем-то.

ДП
На сайте с 23.11.2009
Offline
203
#9
Zakazchik2017:
Нет. Страница публикации материала содержит обфусцированный Javascript, работает на ajax, т.е. ее обязательно нужно как-то отрендерить в чем-то.

А на сервер в итоге запрос-то какой уходит, смотрели?

Может в конечном счёте все сводися к одному запросу?

[Удален]
#10
Дикий пионер:
А на сервер в итоге запрос-то какой уходит, смотрели?
Может в конечном счёте все сводися к одному запросу?

Вот это мысль.

Все конечно сводится не к одному запросу, но отталкиваться нужно от этого.

Там несколько JSON-взаимодействий происходит в процессе отправки материала с приложенным файлом.

При открытии страницы публикации сервером в браузер отправляется id материала (черновика).

Далее браузером на сервер отправляется приложенный файл, теги и категории, название материала и собственно выданный при открытии страницы публикации id.

Т.е. нужно просто обратиться к станице 2 раза, чтобы узнать id, а далее послать файлы.

Так что вопрос можно считать решенным, выходит задачу можно решить через javascript сделав отправку мультипоточной.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий