Как скачать защищенный от скачивания PDF-файл с сайта?
Приветствую всех!
На сайте электронной библиотеки "Наука права" (https://naukaprava.ru/) выложены в свободном доступе по желанию автора (как указано в профиле книги) некоторые книги. В частности, интересует 15-й том Стенограммы Нюрнбергского процесса.
Раньше можно было свободно скачивать книги, которые доступны бесплатно, в формате PDF. Но сейчас, как мне написала поддержка, "баг исправлен" и книги можно только просматривать и читать с сайта, а скачивать нельзя.
Ссылка на книгу - https://naukaprava.ru/read/?id=91464 (для просмотра необходима бесплатная регистрация и авторизация на сайте). Ниже см. скриншот в конце вопроса.
Помогите, пожалуйста скачать книгу или понять механизм как ее скачивать? На первый взгляд принцип понятен, книга запускается на странице в отдельном фрейме в просмоторщике PDF, но не штатном, а их просмоторщик, не имеющем кнопки "скачать". и который похож на штатный в браузере, Также после того, как почитал по Сети про разные способы скачать файлы в подобных случаях я попытался через инструменты разработчика понять к какому файлу обращается сайт и что скачивает он во фрейм.
Выяснилось, что обращается он к некому файлу https://naukaprava.ru/65eef6c52a6bd.pbf - обратите внимание, в расширении не опечатка, там именно PBF. То есть тоже какой-то метод защиты, типа файл PDF, но у него другое расширение что ли? Но скачать и этот файл с другим расширением не получается, если я пытаюсь выцепить эту ссылку отдельно, то файл просто не скачивается, пишет, что его просто нет на сайте.
Вот для иллюстрации привожу скриншоты.
Так выглядит фрейм с загруженной книгой на сайте в просмоторщике.
На этом скриншоте вы можете увидеть как я выцепляю загружаемый файл 65eef6c52a6bd.pbf через инструменты разработчика в браузере.
А вот реакция сайта на попытку напрямую стянуть файл по выцепленной ссылке.
В общем, что там за защита, как можно скачать эту книгу в формате PDF?
Дополнительно:
А почему бы просто не скачать с другого места?)
точно есть. Вот только скорее после всей автоматизации сгенерированный pdf файл будет мало чем отличаться от PCLm (вроде бы и пдфка, но на странице может располагаться только графический блок)
Грубо говоря на выходе будет файл, в котором каждая страница просто картинка.
Олег, В том-то и маразм поддержки магазина, которой я первым делом написал, устранившей ранее "баг", что купить его для скачивания нельзя. Мол, только вот смотрите через сайт. Идиотизм, да и только. :(
Вот только скорее после всей автоматизации сгенерированный pdf файл будет мало чем отличаться от PCLm (вроде бы и пдфка, но на странице может располагаться только графический блок)
В том то и дело, на сайте загруженная книга явно ведет себя так, как будто она загружена в стандартный просмоторщик PDF в браузере, но просто нет кнопки "скачать". Мне кажется там именно подгружается PDF. Кстати, про метод распечатывания я знаю и я пробовал, он генерирует печать на несколько страниц, да и в графическом блоке.
Предполагаю, что в этот момент сайт отдает графический образ нужной страницы.
скорее как data encoded. А скрипт их рисует на canvas.
Но я вообще не преследовал цель пиратить, я просто для себя хотел скачать в коллекцию как интересное издание перевода всей стенограммы Нюрнбергского процесса на русский язык, который. представьте себе, и спустя столько лет после его завершения до сих пор не сделан в полном объеме. Кроме того, тут сложно говорить о возможном пиратстве, так как эти труды автором распространяется бесплатно. Также на другом сайте с электронными книгами "Милитера" (militera.org/docs/all/s/b55290) первые 14 томов лежат до сих пор и доступны для скачивания в PDF.
https://github.com/mozilla/pdf.js
На сайте защита минимальная: спрятали кнопки и закомментировали обработчик. Все обходится спокойно инструментами разработчика. Держи файлик.
- Большое спасибо! А не могли бы вы немного расписать подробности?
Я залез в инструменты разработчика и нашел эти закоменнтированные строки. И удалил тег hidden="true". Кнопка появилась, но, если на нее нажимаешь, то ничего не происходит, файл не скачивается. Подскажите, плз, что еще надо сделать?
- NSGrid, кнопка c id = secondaryDownload, у нее убрать класс visibleMediumView и атрибут hidden.
div с id = secondaryToolbar убрать класс hidden.
скрин 1В интерфейсе появится кнопка скачивания.
скрин 2Но при нажатии файл не выгружается. Смотрим в консоль, там будет blob и ссылка. Ссылка нам не нужна, смотрим откуда пришла запись в консоль, viewer.js:748, переходим к нему и прямо в инструментах разработчика снимаем коммент в функции загрузки, жмем CTRL + S
скрин 3Дальше спокойно нажимаем на кнопку скачивания/
скрин 4 - Автор, супер! Еще раз спасибо! Теперь уже сам сделал. Любопытно, в FF почему-то строки в скрипте viewer.js:748 не удавалось править (недоступны для редактирования), пришлось тоже открывать Хром и там все получилось.
Кстати, а все-таки, что это за https://naukaprava.ru/65eef6c52a6bd.pbf (именно PBF, а не PDF)? Это какая-то отвлекающая пустышка? - irishmann Какой Вы молодчина!
А я мучаюсь вот с этим https://eanbur.unatlib.ru/web/viewer.html?dsfile=3...Может, и меня осчастливите :)
Была бы Вам безгранично благодарна. - Orxid,
Может, и меня осчастливите :)
Конечно)) вот файлик. Тут не получится описанным выше способом. Но тут тоже простая защита.
Переходим на сайт, открываем инструменты разработчика и перезагружаем, переходим на вкладку сеть (или network), применяем фильтр fetch/xhr и кликаем на запрос, у которого размер самый большой.
скрин 1Отсюда нам нужны две ссылки: URL запроса и заголовок Referer
скрин 2Если попробовать просто перейти по ссылке URL запроса, то выдаст 405 ошибку. Нам нужно послать запрос GETс заголовком Referer, для этого я использовал Postman, так же через него просто запихнуть результат запроса в файл.
Открываем postman, проходим логин/регистрацию и выбираем пункт REST API basics
скрин 3Сформируется коллекция с примерами запросов к REST API. Выбираем метод GET, вставляем ссылку из URL запроса, открываем вкладку Headers, добавляем заголовок Referer и указываем ссылку, которую получили из поля referer в инструментах разработчика.
скрин 4Нажимаем кнопку send, запрос выполняется и в нижней части экрана будет результат.
скрин 5Нажимаем на три точки и выбираем пункт меню Save responce to file, скачается pdf-файл.
- NSGrid, ранее не сталкивался с таким форматом. В вики OpenStreetMap пишут что этот формат "предназначен в первую очередь для замены Формата XML", еще есть версия что это "Файл резервной копии Paragon". Но тут кажется что в PBF лежит обычный pdf.
- irishmann, Огромное Вам спасибо! В самом деле, счастлива)))
Спасибо за пошаговую инструкцию, буду пробовать.
Всего Вам самого доброго! - irishmann, pbf (protobuf) это формат, который с OSM напрямую не связан, просто там его стали использовать вместо XML и это оказалось более эффективно по размеру.
Ответы:
Скопировать через буфер можно только неформатированный текст и только текущие +-10 страниц (вручную можно но долго и нудно, потом сшивать).
1. Реверсить их вьювер долго и дорого.
2. Скринить странички - для личного использования подойдет (набор картинок, соединить в pdf и читать не проблема, но железные слабые читалки могут такие не прожевать), сделать не программисту можно с помощью любой автоматизации, например autoit. Логика следующая - открываешь нужный сайт в максимальном размере на полный экран (полный экран и настроить По ширине страницы), затем продумываешь свои действия (мышь/клавиатура) такими, чтобы если их повторять, копировалось все содержимое без пропусков и повторов, в данном случае это кнопка PageDown и копирование экрана (можно по количеству страниц посчитать сколько это будет действий)
В коде autoit это будет for loop
For $i = 1 To 100500 ... Next |
For $i = 1 To 100500 ... Next
шлешь нажатие кнопки
Send('{PGDN}')
ждешь секунду (там примерно каждые 10 страниц генерация и удаление старых) sleep
делаешь скрин с экрана
_ScreenCapture_Capture(StringFormat('%09i', $i) & '.png', 0, 0, @DesktopWidth, @DesktopHeight, False) |
_ScreenCapture_Capture(StringFormat('%09i', $i) & '.png', 0, 0, @DesktopWidth, @DesktopHeight, False)
нужно подобрать размеры чтобы лишнее не копировать
StringFormat тут добавляет к номеру слева нули, чтобы при сшивании порядок не был 1 -> 11 -> 2 -> 3....
по итогу работы получишь тысячу картинок, объединяешь их с помощью imagemagic
magick *.png out.pdf
3. способ - их pdf просмотрщик генерирует валидный html для текста (с картинками сложнее),
css selector
$('#pageContainer2 > .textLayer').innerHTML
тут номер у pageContainer это номер страницы, но в один момент времени заполнены текстом только текущие видимые +- поэтому код нужно будет написать, чтобы корректно в нужный момент времени читать нужные
Можно конечно заморочиться и запилить selenium приложение которое будет листать странички и собирать html-ку, можно в полуручном режиме прямо в браузере в консоли написать пару строчек, собирая текст в localStorage (он ограничен 5-мб кажется). html код там прямо такой (по кускам текста как они были в pdf)
Кликать на следующую страничку - $('#next').click()
<div style="left: 83.5342px; top: 384.732px; font-size: 20.5963px; font-family: serif; transform: scaleX(0.793798);" data-canvas-width="404.5723586629188">Стенограмма Нюрнбергского процесса. Том </div> |
<div style="left: 83.5342px; top: 384.732px; font-size: 20.5963px; font-family: serif; transform: scaleX(0.793798);" data-canvas-width="404.5723586629188">Стенограмма Нюрнбергского процесса. Том </div>
т.е. останется только стили добавить или скопировать их с сайта и готовая отформатированная html будет готова
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос













Для скачивания защищенного от скачивания PDF-файла с сайта, вам потребуется использовать специальные инструменты или программы, которые могут помочь вам обойти защиту и сохранить файл на вашем компьютере.
Одним из способов скачать защищенный PDF-файл с сайта является использование программного обеспечения, такого как Adobe Acrobat Pro или другие PDF-редакторы, которые могут помочь вам сохранить файл на вашем компьютере.
Еще один способ - использование онлайн-сервисов, которые предлагают инструменты для скачивания защищенных PDF-файлов. Однако, помните, что использование таких сервисов может нарушать авторские права и законы о защите интеллектуальной собственности.
Также вы можете попробовать скопировать содержимое защищенного PDF-файла и вставить его в другой документ или программу, которая позволяет сохранять файлы.
Независимо от выбранного способа, помните, что важно соблюдать законы о защите авторских прав и использовать скачанные файлы только в соответствии с законодательством.