Читаем Альдебаран С Удобством

Наверняка некоторые хабралюди читают книги на сайте http://lib.aldebaran.ru .

Они знают, что с некоторых пор текст на сайте «защищен» от копирования.

Конечно, большинство книг по-прежнему доступны для скачивания в удобных для чтения форматах, но многие популярные книги можно читать только онлайн.

Что неудобно.

Следующий простой скрипт Python загрузит всю книгу, одновременно вырезая весь мусор, набитый туда, чтобы затруднить копирование.

 
 import urllib, re, sys
 p_key = re.compile('http:\/\/lib\.

aldebaran\.

ru\/getpage\/1\/.

*?"') p_span = re.compile('<span class=h>(.

*?)<\/span>') p_s = re.compile('\';s \+= \'') p_p = re.compile('(<p>.

*?<\/p>)') p_url_name = re.compile('^(http:\/\/lib.aldebaran.ru\/author\/.

*?__)') def getpage(url): try: key = p_key.findall(urllib.urlopen(url).

read())[0][-33:-1] except: return None urllib.urlopen(" http://lib.aldebaran.ru/getpage/1/ " + key) .

read() page = urllib.urlopen(" http://lib.aldebaran.ru/getpage/2/ " + key) .

read() page = p_span.sub('', page) page = ''.

join(p_p.findall(page)) page = p_s.sub('', page) return page url = sys.argv[1] url = p_url_name.findall(url)[0] i = 1 while True: page = getpage(url + str(i) + '.

html') i += 1 if page != None: print page else: sys.exit(0)

Скрипт принимает ссылку на любую страницу книги в качестве параметра командной строки и отображает ее текст на стандартном выводе.

Его очень легко использовать: Python лит.py lib.aldebaran.ru/author/sadov_sergei/sadov_sergei_klinki_u_trona/sadov_sergei_klinki_u_trona__0.html > лит.html P.S. Пожалуйста, оставьте вопрос этики в стороне.

Лично я плачу за любимые книги напрямую автору.

УПД Я не единственный умный.

В комментариях предложили загрузчик электронных книг — целое приложение, поддерживающее библиотеки Fictionbook, Aldebar, Litportal (требуется .

NET) А еще маленький плагин для Firefox Хабраузер ДиректХ ДиректХ Теги: #python #books #books #aldebaran #Chulan

Вместе с данным постом часто просматривают: