В последнее время тема авторского права набирает в обществе все большую популярность. Закручиваются гайки, принимаются новые законы, а копирасты продолжают вопить о своей мифической упущенной выгоде. Давайте посмотрим, как некоторые из них заботятся о безопасности собственной продукции.
Неспешно бороздя просторы Интернета, я, волею судеб, очутился на сайте «Консультант студента», жизнь которому подарила ООО «Политехресурс» — компания, входящая в Издательскую группу «ГЭОТАР-Медиа». Познакомимся поближе с нашим будущим пациентом.
Ну что ж, давайте проверим, насколько это смелое утверждение соответствует истине. Зайдем на сайт и выберем какую-нибудь случайную книгу, например Интернет-аналитика. Поиск и оценка информации в web-ресурсах. Потыкав в «Оглавление», можно заметить, что сайт предоставляет нам для ознакомления несколько страниц, а потом предлагает зарегистрироваться:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/a63/9ee/c62/a639eec6208ccf45fa1541b71fd9aa52.png)
Демонстрационные страницы книги представлены в виде картинки, что не очень-то для нас интересно, однако внизу каждой демонстрационной страницы можно увидеть такую ссылку:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/71f/f93/9ac/71ff939acbc7be0b351711598b39bcd6.png)
Воспользуемся любезно предоставленной разработчиками возможностью и тыкнем на нее, а затем исследуем полученную страницу:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/0f8/30f/542/0f830f5424d95a8967b96e76f088fd1b.png)
Можно заметить, что вместо картинки на странице появился новый объект с весьма интересным адресом:
Проделав то же самое со следующей страницей из оглавления, получим другую ссылку:
Очевидно, что параметр ISBN9785804105694-SCN0000 — это ISBN книги и номер главы, а 0002.pdf и 0003.pdf, параметр, отвечающий за страницу.
Таким образом, подставляя номер главы и номер страницы, мы, даже не регистрируясь на сайте, без каких-либо ограничений, можем получать любую страницу книги прямо в pdf. Единственное неудобство в том, что каждой главе соответствуют определенные номера страниц. И если в книге данной главе не соответствует данная страница, то нас переадресовывают на главную страницу сайта. Поэтому определять это соответствие приходится исключительно эмпирически.
Для пущего удобства, напишем небольшой скрипт, сохраняющий книгу в виде отдельных страниц:
Принцип работы крайне топорен:
Поскольку мы не знаем, сколько страниц в каждой главе, перебираем все подряд и если в полученном файле встречается html-тэг, то это явно не pdf-страница и этот файл подлежит удалению. Конечно, можно было бы сразу склеивать полученные страницы в единый pdf, однако опыт показал, что страницы сохраняются не совсем последовательно и их приходится компоновать вручную (да и вообще, надо же знать меру цинизму в конце-то концов).
В заключении хотелось бы воздержаться от каких-либо конкретных выводов. Пусть каждый сделает их для себя сам. Стоит лишь напомнить о том, что данное исследование носит исключительно ознакомительный характер и не является призывом к пиратству и нарушению авторских прав.
Неспешно бороздя просторы Интернета, я, волею судеб, очутился на сайте «Консультант студента», жизнь которому подарила ООО «Политехресурс» — компания, входящая в Издательскую группу «ГЭОТАР-Медиа». Познакомимся поближе с нашим будущим пациентом.
Многопрофильный образовательный ресурс «Консультант студента» (www.studentlibrary.ru) является электронно-библиотечной системой (ЭБС), предоставляющей доступ через сеть Интернет к учебной литературе и дополнительным материалам, приобретенным на основании прямых договоров с правообладателями. Сайт предназначен для корпоративных пользователей — вузов, колледжей, других образовательных учреждений, которые, приобретая на платной основе подписку на ресурс, предоставляют затем безвозмездно своим учащимся и сотрудникам доступ к полным текстам электронных версий книг. Доступ к ресурсу для частных лиц на сегодняшний день не предлагается.
Ну что ж, давайте проверим, насколько это смелое утверждение соответствует истине. Зайдем на сайт и выберем какую-нибудь случайную книгу, например Интернет-аналитика. Поиск и оценка информации в web-ресурсах. Потыкав в «Оглавление», можно заметить, что сайт предоставляет нам для ознакомления несколько страниц, а потом предлагает зарегистрироваться:
![image](https://habrastorage.org/getpro/habr/post_images/a63/9ee/c62/a639eec6208ccf45fa1541b71fd9aa52.png)
Демонстрационные страницы книги представлены в виде картинки, что не очень-то для нас интересно, однако внизу каждой демонстрационной страницы можно увидеть такую ссылку:
![image](https://habrastorage.org/getpro/habr/post_images/71f/f93/9ac/71ff939acbc7be0b351711598b39bcd6.png)
Воспользуемся любезно предоставленной разработчиками возможностью и тыкнем на нее, а затем исследуем полученную страницу:
![image](https://habrastorage.org/getpro/habr/post_images/0f8/30f/542/0f830f5424d95a8967b96e76f088fd1b.png)
Можно заметить, что вместо картинки на странице появился новый объект с весьма интересным адресом:
www.studentlibrary.ru/cgi-bin/mb4?hide_Cookie=yes&usr_data=gd-image(doc,ISBN9785804105694-SCN0000,0002.pdf,-1,,00000000)
Проделав то же самое со следующей страницей из оглавления, получим другую ссылку:
www.studentlibrary.ru/cgi-bin/mb4?hide_Cookie=yes&usr_data=gd-image(doc,ISBN9785804105694-SCN0000,0003.pdf,-1,,00000000)
Очевидно, что параметр ISBN9785804105694-SCN0000 — это ISBN книги и номер главы, а 0002.pdf и 0003.pdf, параметр, отвечающий за страницу.
Таким образом, подставляя номер главы и номер страницы, мы, даже не регистрируясь на сайте, без каких-либо ограничений, можем получать любую страницу книги прямо в pdf. Единственное неудобство в том, что каждой главе соответствуют определенные номера страниц. И если в книге данной главе не соответствует данная страница, то нас переадресовывают на главную страницу сайта. Поэтому определять это соответствие приходится исключительно эмпирически.
Для пущего удобства, напишем небольшой скрипт, сохраняющий книгу в виде отдельных страниц:
# -*- coding: utf-8 -*-
import urllib
import os
def main(*argv):
isbn = 'ISBN9785804105694'
scn_amount = 3
page_amount = 78
for scn in range(0, scn_amount + 1):
for current_page in range(0, page_amount + 1):
current_page_formated = (4 - len(str(current_page))) * '0' + str(current_page)
scn_formatted = (4 - len(str(scn))) * '0' + str(scn)
url = 'http://www.studmedlib.ru/cgi-bin/mb4?hide_Cookie=yes&usr_data=gd-image(doc,' + isbn + '-' + 'SCN' + scn_formatted + ',' + current_page_formated + '.pdf,-1,,00000000)'
print 'getting ', url
urllib.urlretrieve(url, 'pages/' + str(scn) + '_' + str(current_page) + '.pdf')
f1 = open('pages/' + str(scn) + '_' + str(current_page) + '.pdf', 'r')
if '<HTML>' in f1.read():
os.remove('pages/' + str(scn) + '_' + str(current_page) + '.pdf')
if __name__ == "__main__":
main()
Принцип работы крайне топорен:
- isbn — ISBN книги,
- scn_amount — количество глав,
- page_amount — количество страниц.
Поскольку мы не знаем, сколько страниц в каждой главе, перебираем все подряд и если в полученном файле встречается html-тэг, то это явно не pdf-страница и этот файл подлежит удалению. Конечно, можно было бы сразу склеивать полученные страницы в единый pdf, однако опыт показал, что страницы сохраняются не совсем последовательно и их приходится компоновать вручную (да и вообще, надо же знать меру цинизму в конце-то концов).
В заключении хотелось бы воздержаться от каких-либо конкретных выводов. Пусть каждый сделает их для себя сам. Стоит лишь напомнить о том, что данное исследование носит исключительно ознакомительный характер и не является призывом к пиратству и нарушению авторских прав.