Вы можете бесплатно загрузить этот инструмент и использовать его в своих личных целях. Если вы модифицируете эту программу и хотите поделиться ею, сделайте форк. Вы должны включить ссылку на исходный репозиторий вверху, как показано здесь: Исходный репозиторий: [ссылка]
Расширенная программа позволяет вам больше контролировать ее поведение и редактировать ее конфигурацию. Большинству пользователей достаточно стандартного. Расширенная версия программы находится в папке «advanced_version» в этом репозитории.
Я создаю это приложение, чтобы изучить Python и использовать его в качестве резервного средства для пакетной загрузки карт. У меня есть собственная надстройка для браузера, написанная на JS, которая работает нормально, но я работаю над этим решением на случай, если моя сломанная надстройка перестанет работать. Кроме того, я не буду публиковать исходный код этого дополнения, потому что оно сделано специально для меня - поэтому оно немного сломано, но я не утруждаюсь его исправлением. Вот так и начинается этот проект. План состоит в том, чтобы использовать Selenium и сделать еще больше функций, чем может сделать текущая надстройка для браузера. Надстройка работала, нажимая кнопки загрузки по порядку, ожидая жестко запрограммированного периода времени до завершения загрузки (чтобы предотвратить повторную загрузку, поскольку сайту это не понравилось), затем нажимая кнопку «Далее», чтобы перейти на следующую страницу, и повторяя . Теперь я хочу создать еще одно решение, которое позволит пользователю создавать файлы конфигурации, чтобы еще больше автоматизировать процесс загрузки. Посмотрю, куда меня это приведет.
Я уже вижу, что написание JS Extension для этой цели было сверхбыстрым и менее сложным, но определенно у обоих решений есть свои плюсы и минусы. (Наверное, я их перечислю позже)
программное обеспечение находится в разработке, поэтому рекомендуется читать комментарии к коду внутри файлов .py, чтобы лучше понять его внутреннюю работу.
программа сделана для db.bepis.moe - так что если вы не уверены какое значение можно ввести в некоторые поля -> зайти на сайт -> выбрать игру -? проверьте, что вы можете выбрать и/или ввести в форму поиска
Выберите тип игры
Выберите тип загрузки -> «базовый» позволяет ввести только «Имя» и/или «Тег» для поиска -> «расширенный» — позволяет настроить все параметры поиска, доступные для выбранной игры (работа над этим ведется)
Введите значение для каждого предлагаемого поля или нажмите «Ввести», чтобы получить значение по умолчанию.
Подождите завершения загрузки.
Страница выбранной игры загружается, и форма заполняется селеном.
После нажатия кнопки поиска программа ждет 5 секунд, пока загрузится сайт.
Карта будет загружаться каждые 5 секунд, чтобы предотвратить множественные загрузки, поскольку веб-сайт не любит множественные загрузки. (Некоторые карты могут иметь размер более 25 МБ, поэтому лучше уделять им больше времени, чем меньше) //Я могу создать функцию, которая проверит, завершена ли загрузка карты, прежде чем переходить к следующей карте в будущем.
Если на странице меньше 24 карточек, это последняя страница (или только одна) -> Загрузка завершена.
Если на странице 24 карточки, но кнопка «Далее» неактивна -> Загрузка завершена.
Если кнопка активна -> измените URL и загрузите страницу -> начните загрузку карточек, пока на странице не останется менее 24 карточек или пока кнопка «Далее» не будет отключена.
Некоторые карты весят много, даже более 25 МБ - если у вас медленный интернет - ИЗМЕНИТЕ ВРЕМЯ ОЖИДАНИЯ - между загрузками карт даже будет 20 секунд!
Соответствующие функции SLEEP в коде имеют комментарии, окруженные #. Точно так же, как показано ниже:
###################################### #BELOW TIME FOR CARD TO BE DOWNLOADED# ######################################
+Известная проблема: -> Malwarebytes убьет программу, если вы запустите ее из PyCharm и, возможно, в любой другой форме. Отключите его и попробуйте использовать снова. //Ему нравится убивать скрипты Python.
чтобы быть уверенным, что программа загрузила все карточки, можно воспользоваться формулой: ((количество страниц) - 1) * 24 + (количество карточек на последней странице)
для 7 страниц, когда последняя содержит 4 карты, это будет выглядеть так: 6*24+4 = 148 карточек
для менее продвинутых пользователей: не используйте этот скрипт для скачивания "живого контента" -> если кто-то загружает на сайт новые карточки, и они попадают под условия вашей загрузки, скрипт их не скачает. Эта ситуация изменит порядок карточек и может привести к пропуску некоторых карточек при очень активном поиске или загрузке дубликатов. Представьте, что на сайте 30 карточек - 1 страница из 24 карточек и 6 карточек на странице 2. Вы начинаете скачивать и в первые секунды кто-то загружает еще 3 карточки. Страница может обрабатывать 24 карты, поэтому последние 3 карты перемещаются на страницу 2, где теперь лежат 9 карт. Но скрипт этого не знает - до этого в браузере уже была загружена страница. Есть версия сайта, в которой карты не перемещаются. Скрипт меняет страницу на следующую (страница 2). Вы загружаете эти 9 карточек, включая 3 карты, которые у вас уже есть.