Документація з програмного інтерфейсу для роботи з рецептами¶
Програмний інтерфейс для написання скриптів визначено класом BasicNewsRecipe
- class calibre.web.feeds.news.BasicNewsRecipe(options, log, progress_reporter)[source]¶
Базовий клас, який містить логіку, потрібну для усіх рецептів. Поступово перевизначаючи функціональність у цьому класі ви можете створити поступово налаштовувані або потужніші рецепти. Початкові настанови щодо створення рецептів можна знайти у розділі Додавання вашого улюбленого сайта новин.
- abort_article(msg=None)[source]¶
Цей метод слід викликати у будь-якому з методів попередньої обробки для переривання отримання поточної статті. Корисний для пропускання статей, які містять неприйнятні дані, зокрема статей, які містять лише відео.
- abort_recipe_processing(msg)[source]¶
Спричиняє переривання завантаження цього рецепта системою отримання рецепта, показуючи просте повідомлення-відповідь користувачеві.
- add_toc_thumbnail(article, src)[source]¶
Викликається з populate_article_metadata із атрибутом src теґу <img> зі статті, яку слід використовувати як мініатюру, що відповідає статті у таблиці вмісту. Мініатюра, яку насправді буде використано залежить від пристрою (у поточній версії використовується лише у пристроях Kindle). Зауважте, що еталонне зображення має бути серед тих, які було успішно отримано, інакше його буде проігноровано.
- classmethod adeify_images(soup)[source]¶
Якщо ваш рецепт після перетворення на формат EPUB має проблеми із зображеннями під час перегляду у Adobe Digital Editions, викличте цей метод з
postprocess_html()
.
- canonicalize_internal_url(url, is_link=True)[source]¶
Повертає набір канонічних представлень
url
. У типовій реалізації використовується лише назва вузла сервера та шлях адреси, ігноруються усі параметри запиту, фрагменти тощо. Канонічні представлення мають бути унікальними щодо усіх адрес у джерелі новин. Якщо вони не є такими, внутрішні посилання можуть визначатися із помилками.- Параметри:
is_link – Має значення True, якщо адреса надходить із зовнішнього посилання у файлі HTML. False, якщо адреса є адресою, що використовується для отримання статті.
- cleanup()[source]¶
Викликається після отримання усіх статей. Скористайтеся ним для виконання будь-якого спорожнення, зокрема виходу з облікового запису на сайтах з підпискою тощо.
- clone_browser(br)[source]¶
Клонувати програму для перегляду інтернету br. Клоновані програми для перегляду інтернету використовуються для багатопотокового отримання даних, оскільки mechanize не є безпечним щодо виконання у потоках. Типові процедури клонування мають підхопити більшу частину з налаштувань програми для перегляду інтернету, але якщо ви робите у вашому рецепті щось екзотичне, вам слід перевизначити цей метод у вашому рецепті і клонувати програму вручну.
Клоновані екземпляри програми для перегляду інтернету типово використовує той самий, безпечний щодо потоків виконання CookieJar, якщо вами не визначено нетипову обробку кук.
- download()[source]¶
Отримати і попередньо обробити усі статті з подачі у цьому рецепті. Цей метод слід викликати лише один раз у одному екземплярі рецепта. Повторне викликання методу призведе до невизначеної поведінки. Повертає шлях до index.html
- extract_readable_article(html, url)[source]¶
Видобуває основні дані статті з «html», вилучає зайві дані і повертає кортеж (article_html, extracted_title). Засновано на початковому алгоритмі читання від Arc90.
- get_article_url(article)[source]¶
Перевизначте у підкласі для зміни поведінки видобування URL, який вказує на вміст кожної статті. Повертає адресу статті. Викликається з параметром article, об’єктом, який відповідає обробленій статті з подачі. Див. feedparser. Типово, шукає початкове посилання (для подач, що розповсюджуються за допомогою служб, зокрема FeedBurner або Pheedo) і, якщо знайдено, повертає його. Інакше повертає article.link.
- get_browser(*args, **kwargs)[source]¶
Повертає екземпляр програми для перегляду інтернету, що використовується для отримання документів з інтернету. Типово, повертає екземпляр програми mechanize, у якому передбачено підтримку кук, ігнорування robots.txt, обробку оновлень та випадковий типовий агент користувача.
Щоб налаштувати браузер, перевизначте цей метод у вашому підкласі так:
def get_browser(self, *a, **kw): br = super().get_browser(*a, **kw) # Add some headers br.addheaders += [ ('My-Header', 'one'), ('My-Header2', 'two'), ] # Set some cookies br.set_cookie('name', 'value') br.set_cookie('name2', 'value2', domain='.mydomain.com') # Make a POST request with some data br.open('https://someurl.com', {'username': 'def', 'password': 'pwd'}).read() # Do a login via a simple web form (only supported with mechanize browsers) if self.username is not None and self.password is not None: br.open('https://www.nytimes.com/auth/login') br.select_form(name='login') br['USERID'] = self.username br['PASSWORD'] = self.password br.submit() return br
- get_cover_url()[source]¶
Повертає URL зображення обкладинки для цього випуску або None. Типово, повертає значення member self.cover_url, яким є зазвичай None. Якщо ви хочете, щоб ваш рецепт отримував зображення обкладинки для електронної книги, перевизначте цей метод у вашому підкласі або встановіть змінну member self.cover_url до виклику цього методу.
- get_extra_css()[source]¶
Типово повертає «self.extra_css». Перевизначте, якщо вам потрібно, щоб extra_css було створено програмно.
- get_feeds()[source]¶
Повертає список подач RSS для отримання для цього профілю. Кожен елемент списку має бути двоелементним кортежем у формі (назва, адреса). Якщо значенням назви є None або порожній рядок, буде використано назву з подачі. Цей метод є корисним, якщо ваш рецепт потребує певної обробки для визначення списку подач, дані яких слід отримувати. Якщо ви маєте справу з саме таким джерелом даних, перевизначте метод у вашому підкласі.
- get_masthead_title()[source]¶
Перевизначте у підкласі, щоб скористатися чимось іншим, окрім заголовка рецепта.
- get_masthead_url()[source]¶
Повертає URL зображення титульних даних для цього випуску або None. Типово, повертає значення member self.masthead_url, яким типово є None. Якщо вам потрібно, щоб ваш рецепт отримував титульні дані для електронної книги, перевизначте цей метод у вашому підкласі або встановіть значення змінної member self.masthead_url до виклику цього методу. Зображення титульних даних використовуються у файлах MOBI Kindle.
- get_obfuscated_article(url)[source]¶
Якщо ви встановите articles_are_obfuscated, цей метод буде викликано для усіх адрес статей. Він має повертати шлях у файловій системі до файла, який містить код HTML статті. Цей файл буде оброблено рушієм рекурсивного отримання даних HTML, отже він може містити посилання на сторінки і зображення в інтернеті. Крім того, можна повертати словник у формі {„data“: <HTML data>, „url“: <the resolved URL of the article>}. Таким чином можна уникнути створення тимчасових файлів. Ключ url у цьому словнику корисних, якщо сама адреса статті відрізняється від адреси, яку передано до цього методу, наприклад, через переспрямовування. Його можна пропустити, якщо адреса лишається незмінною.
Типово, цей метод є корисним для сайтів, які ускладнюють автоматичний доступ до вмісту статей.
- get_url_specific_delay(url)[source]¶
Повертає затримку у секундах перед отриманням даних з цієї адреси. Якщо ви хочете програмно задати затримку для визначеної адреси, перевизначте цей метод у вашому підкласі, повертаючи типово self.delay для адрес, на які цей параметр не повинен вплинути.
- Повертає:
Число з рухомою крапкою, затримка у секундах.
- classmethod image_url_processor(baseurl, url)[source]¶
Виконує деяку обробку адрес зображень (вилучення обмежень за розміром для динамічно створених зображень тощо) і повертає оброблену адресу. Повертає None або порожній рядок, якщо отримання зображення слід пропустити.
- index_to_soup(url_or_raw, raw=False, as_tree=False, save_raw=None)[source]¶
Зручний метод, який отримує адресу основної сторінки і повертає створений на її основі BeautifulSoup.
«url_or_raw»: адреса або отримана сторінка покажчика як рядок
- is_link_wanted(url, tag)[source]¶
Повертає True, якщо за посиланням слід перейти, або False, якщо ні. Типово, видає NotImplementedError, що призводить до ігнорування посилання засобом отримання даних.
- Параметри:
url – Адреса для переходу
tag – Мітка, за якою було визначено адресу.
- parse_feeds()[source]¶
Створює список статей на основі списку подач, повернутого
BasicNewsRecipe.get_feeds()
. Повертає список об’єктівFeed
.
- parse_index()[source]¶
Цей метод слід реалізовувати у рецептах, які обробляють дані сайта замість подач для створення списку статей. Типовим використанням є, обробка джерел новин, які мають вебсторінки «Друкованої версії» зі списками усіх статей у поточному друкованому виданні. Якщо цю функцію реалізовано, вона матиме вищий пріоритет використання за
BasicNewsRecipe.parse_feeds()
.Має повертати список. Кожен елемент списку має бути двоелементним кортежем у формі
('назва подачі', список статей)
.Кожен список статей має містити словники у такій формі:
{ 'title' : article title, 'url' : URL of print version, 'date' : The publication date of the article as a string, 'description' : A summary of the article 'content' : The full article (can be an empty string). Obsolete do not use, instead save the content to a temporary file and pass a file:///path/to/temp/file.html as the URL. }
Приклад можна знайти у рецепті для отримання The Atlantic. Крім того, ви можете додати «author» для автора статті.
Якщо ви з якоїсь причини хочете перервати обробку і хочете наказати calibre показати користувачеві просте повідомлення замість повідомлення про помилку, викличте
abort_recipe_processing()
.
- populate_article_metadata(article, soup, first)[source]¶
Викликається під час отримання кожної зі сторінок HTML, що належать до статті. Призначено для отримання метаданих статті, зокрема даних щодо автора, резюме із обробленого HTML (soup).
- Параметри:
article – об’єкт класу
calibre.web.feeds.Article
. Якщо ви зміните summary, не забудьте також змінити text_summary.soup – Оброблений HTML, що відповідає цій статті.
first – Має значення True лише тоді, коли оброблений HTML є першою сторінкою статті.
- postprocess_book(oeb, opts, log)[source]¶
Виконати будь-яку остаточну обробку для отриманої електронної книги.
- Параметри:
oeb – Об’єкт OEBBook
opts – Параметри перетворення
- postprocess_html(soup, first_fetch)[source]¶
Цей метод викликається із джерелом кожного отриманого файла HTML після його обробки для отримання посилань та зображень. Ним можна скористатися для виконання довільної потужної остаточної обробки коду HTML. Має повертати soup після завершення обробки.
- Параметри:
soup – Екземпляр BeautifulSoup, що містить отриманий код HTML.
first_fetch – True, якщо це перша сторінка статті.
- preprocess_html(soup)[source]¶
Цей метод викликається із джерелом кожного отриманого файла HTML до його обробки для отримання посилань та зображень. Викликається після чищення коду, яке визначається методами remove_tags тощо. Ним можна скористатися для виконання довільної потужної попередньої обробки коду HTML. Має повертати soup після завершення обробки.
Екземпляр BeautifulSoup, що містить отриманий код HTML.
- preprocess_image(img_data, image_url)[source]¶
Виконати певну обробку отриманих даних зображення. Викликається для необроблених даних до виконання усіх дій зі зміни розмірів. Має повертати оброблені дані. Повертає None, якщо зображення слід пропустити.
- preprocess_raw_html(raw_html, url)[source]¶
Цей метод викликається для джерела кожного отриманого файла HTML до того, як з нього буде створено дерево об’єктів. raw_html є рядком у кодуванні unicode, що відповідає необробленому коду HTML, який отримано з інтернету. url — адреса, з якої було отримано код HTML.
Зверніть увагу на те, що цей метод діє до preprocess_regexps.
Цей метод повинен повернути оброблений raw_html як об’єкт Unicode.
- classmethod print_version(url)[source]¶
Приймає url, адресу, яка вказує на сторінку із вмістом статті, і повертає URL, адресу, що вказує на друковану версію статті. Типово не виконує ніяких дій. Приклад:
def print_version(self, url): return url + '?&pagewanted=print'
- publication_date()[source]¶
Скористайтеся цим методом для встановлення дати публікації цього випуску. Типовим є момент отримання. Має повертати об’єкт
datetime.datetime
.
- skip_ad_pages(soup)[source]¶
Цей метод викликається для джерела кожного отриманого файла HTML до застосування будь-яких атрибутів для чищення, зокрема remove_tags, keep_only_tags тощо. Зауважте, що preprocess_regexps буде застосовано до застосування цього методу. Метод призначено для того, щоб рецепт міг пропустити сторінки реклами. Якщо soup відповідає сторінці реклами, повертає HTML справжньої сторінки даних. Інакше повертає None.
Екземпляр BeautifulSoup, що містить отриманий код HTML.
- sort_index_by(index, weights)[source]¶
Зручний метод для упорядковування заголовків у index відповідно до weights. index — упорядковується на місці. Повертає index.
index: Список назв.
weights: словник для ваги заголовків. Якщо заголовки у index не буде знайдено у weights, для них буде визначено вагу 0.
- classmethod tag_to_string(tag, use_alt=True, normalize_whitespace=True)[source]¶
Зручний метод для отримання
Tag
BeautifulSoup і рекурсивного видобування з нього тексту, зокрема усіх розділів CDATA і атрибутів alt теґів. Повертає рядок Unicode, який може бути порожнім.use_alt: якщо True, спробувати скористатися атрибутом alt для теґів, у яких немає жодного текстового вмісту.
tag:
Tag
BeautifulSoup
- articles_are_obfuscated = False¶
Встановіть значення True і реалізуйте
get_obfuscated_article()
для обробки сайтів, у яких вжито заходи для ускладнення отримання даних.
- auto_cleanup = False¶
Автоматично видобуває увесь текст із отриманих сторінок статей. Використовує алгоритми з проекту readability. Встановлення для цього параметра значення True, означає, що ви не хочете перейматися чищенням отриманого коду HTML вручну (хоча таке чищення завжди даватиме кращі результати).
- auto_cleanup_keep = None¶
Визначає елементи, які алгоритм автоматичного чищення ніколи не повинен вилучати. Синтаксично є виразом XPath. Приклад:
auto_cleanup_keep = '//div[@id="article-image"]' will keep all divs with id="article-image" auto_cleanup_keep = '//*[@class="important"]' will keep all elements with class="important" auto_cleanup_keep = '//div[@id="article-image"]|//span[@class="important"]' will keep all divs with id="article-image" and spans with class="important"
- browser_type = 'mechanize'¶
Імітований рушій браузера, яким слід скористатися для отримання даних з серверів. Типовим є використання механізованого рушія браузера Python, для якого передбачено підтримку входу до системи. Втім, якщо вам не потрібно входити до системи, варто змінити його або на «webengine», для якого використано справжній браузер Chromium для запитів у мережі, або «qt», для якого використано модуль Qt Networking. В обох варіантах, «webengine» і «qt» передбачено підтримку HTTP/2, якої немає у mechanize, тому його важче відстежити службам захисту від ботів.
Якщо True, панель навігації буде вирівняно за центром, інакше його буде вирівняно ліворуч.
- compress_news_images = False¶
Встановіть для цього параметра значення False, якщо ви хочете, щоб усі параметри масштабування і стискання було проігноровано, отже усі зображення передано без змін. Якщо має значення True і для усіх інших параметрів стискання залишено типові значення, зображення буде масштабовано відповідно до розмірностей екрана, які встановлено профілем виведення даних і стиснуто до розміну, що не перевищує (ш * в)/16, де ш x в є шириною і висотою масштабованого зображення.
- compress_news_images_auto_size = 16¶
Коефіцієнт, що використовуватиметься для автоматичного стискання зображень JPEG. Якщо встановлено значення None, автоматичне стискання буде вимкнено. Якщо встановлено інше значення, зображення буде зменшено у розмірах до (ш * в)/compress_news_images_auto_size байтів, якщо це можливо, зменшенням рівня якості. Тут ш x в — ширина і висота зображення у пікселях. Мінімальним значенням якості JPEG є 5/100, отже, може так статися, що бажаних обмежень досягти не вдасться. Значення цього параметра можна перевизначити за допомогою параметра compress_news_images_max_size, який визначає фіксований максимальний розмір зображень. Зауважте, що якщо ви увімкнете scale_news_images_to_device, зображення буде спочатку масштабовано, а потім його якість буде знижено, аж доки розмір його даних стане меншим за (ш * в)/коефіцієнт, де ш — ширина, а в — висота масштабованого зображення. Іншими словами, стискання відбуватиметься після масштабування.
- compress_news_images_max_size = None¶
Встановити якість стискання JPEG так, щоб розмір файлів зображень не перевищував вказаний (у кілобайтах). Якщо встановлено, цей параметр перевизначає параметр автоматичного стискання, який задано compress_news_images_auto_size. Мінімальним значенням якості JPEG є 5/100, тому можуть бути випадки, коли задовольнити обмеження все ж не вдасться.
- conversion_options = {}¶
Специфічні для рецепта параметри, які керують перетворенням отриманих даних книги. Перевизначають усі задані користувачем або додатком значення, тому їх слід використовувати лише за кончої потреби. Приклад:
conversion_options = { 'base_font_size' : 16, 'linearize_tables' : True, }
- cover_margins = (0, 0, '#ffffff')¶
Типово, як зображення обкладинки періодичного видання буде використано зображення обкладинки, яке повертає get_cover_url(). Перевизначення цього у вашому рецепті накаже calibre обробити отримане зображення обкладинки так, щоб воно вклалося у прямокутник, ширина і висота якого визначаються у відсотках до ширини і висоти отриманого зображення обкладинки. Значення cover_margins = (10, 15, „#ffffff“) додає до обкладинки поле у 10 пікселів ліворуч і праворуч і у 15 пікселів згори і знизу. Назви кольорів визначено тут. Зауважте, що з певної причини значення white не завжди спрацьовує у Windows. Використовуйте замість назви білого кольору його значення, #ffffff
- delay = 0¶
Типова затримка між послідовними сеансами отримання даних у секундах. Для точнішого визначення часу можна скористатися аргументом у форматі числа із рухомою крапкою. Див.
get_url_specific_delay()
щодо реалізації затримок для окремих адрес.
- description = ''¶
Декілька рядків, які описують дані, які отримуються за допомогою цього рецепта. Їх, в основному, буде використано у графічному інтерфейсі, де показується список рецептів.
- encoding = None¶
Вказати кодування для сайтів із помилковою специфікацією кодування. Найпоширенішим варіантом для англомовних сайтів є набір символів
latin1
і кодуванняcp1252
. Якщо вказано значення None, програма спробує автоматично визначити кодування. Якщо вказано назву функції, її буде викликано із двома аргументами: об’єктом рецепта і початковими даними для декодування. Функція має повертати декодовані дані.
- extra_css = None¶
Визначає будь-яку додаткову таблицю стилів CSS, яку слід додати до отриманих файлів HTML. Її буде вставлено до теґів <style>, одразу перед завершальним теґом </head>, і таким чином перевизначено усі CSS, окрім тієї, яку оголошено за допомогою атрибута style для окремих теґів HTML. Зауважте, що якщо ви хочете програмовим чином створити extra_css, вам слід перевизначити замість цього методу метод
get_extra_css()
. Приклад:extra_css = '.heading { font: serif x-large }'
- feeds = None¶
Список подач для отримання. Можна задавати у форматі
[адреса1, адреса2, ...]
або у форматі[('назва1', адреса1), ('назва2', адреса2),...]
- filter_regexps = []¶
Список формальних виразів, який визначає посилання, які слід ігнорувати. Якщо список є порожнім, його буде проігноровано. Використовується, лише якщо не реалізовано is_link_wanted. Приклад:
filter_regexps = [r'ads\.doubleclick\.net']
вилучити усі адреси, які містять ads.doubleclick.net.
Має бути визначено лише один з атрибутів,
BasicNewsRecipe.match_regexps
абоBasicNewsRecipe.filter_regexps
.
- handle_gzip = True¶
Встановіть значення False, якщо ви не хочете стискати передані дані за допомогою gzip у механізованому браузері. Зауважте, що деякі застарілі сервери не сприймають стиснені gzip дані.
- ignore_duplicate_articles = None¶
Ігнорувати дублікати статей, які є у декількох розділах. Стаття-дублікат є статей, яка має той самий заголовок і/або адресу. Щоб програма ігнорувала статті з однаковими заголовками, встановіть таке значення:
ignore_duplicate_articles = {'title'}
Щоб використовувати адреси, встановіть таке:
ignore_duplicate_articles = {'url'}
Щоб встановлювати відповідність за заголовком або адресою, встановіть таке:
ignore_duplicate_articles = {'title', 'url'}
- keep_only_tags = []¶
Зберегти лише вказані теґи і їхні дочірні теґи. Формат визначення теґу описано у розділі щодо
BasicNewsRecipe.remove_tags
. Якщо цей список не є порожнім, теґ <body> буде спорожнено і повторно заповнено теґами, які відповідають записам у цьому списку. Приклад:keep_only_tags = [dict(id=['content', 'heading'])]
збереже лише теґи, у яких є атрибут id у «content» або «heading».
- language = 'und'¶
Мова, якою написано новини. Визначається за допомогою дво- або трилітерного коду ISO-639
- masthead_url = None¶
Типово, calibre використовуватиме типове зображення для masthead (лише Kindle). Перевизначте його у вашому рецепті, щоб надати адресу, яку слід використовувати як masthead.
- match_regexps = []¶
Список формальних виразів, який визначає посилання, за якими слід переходити. Якщо список є порожнім, його буде проігноровано. Використовується, лише якщо не реалізовано is_link_wanted. Приклад:
match_regexps = [r'page=[0-9]+']
буде встановлено відповідність усіх адрес, які містять вираз «page=якесь число».
Має бути визначено лише один з атрибутів,
BasicNewsRecipe.match_regexps
абоBasicNewsRecipe.filter_regexps
.
- max_articles_per_feed = 100¶
Максимальна кількість статей для отримання з кожної з подач. В основному, корисна для подач, у яких не вказано дат статей. Для більшості статей вам слід використовувати
BasicNewsRecipe.oldest_article
- needs_subscription = False¶
Якщо True, у графічному інтерфейсі програма попросить користувача вказати ім’я і пароль, які слід використовувати для отримання даних. Якщо встановлено як «optional», зазначення імені користувача і пароля буде необов’язковим.
- no_stylesheets = False¶
Зручний прапорець для вимикання завантаження таблиць стилів для сайтів, у яких використовуються надто складні таблиці стилів, які є непридатними для перетворень на формати електронних книг. Якщо має значення True, таблиці стилів не отримуються і не обробляються.
- oldest_article = 7.0¶
Вік найстарішої статті, яку слід завантажувати для цього нового джерела новин. Визначається у днях.
- preprocess_regexps = []¶
Список правил підставляння regexp, якими слід скористатися для отриманого коду HTML. Кожен запис у списку має бути двоелементним кортежем. Першим елементом кортежу має бути скомпільований формальний вираз, а другим — функція, яка приймає одинарний об’єкт-відповідник і повертає рядок, яким слід замінити відповідник. Приклад:
preprocess_regexps = [ (re.compile(r'<!--Article ends here-->.*</body>', re.DOTALL|re.IGNORECASE), lambda match: '</body>'), ]
вилучить усе від <!–Article ends here–> до </body>.
- publication_type = 'unknown'¶
Тип публікації. Встановіть у значення newspaper, magazine або blog. Якщо встановлено None, до файла opf не буде записано метаданих типу публікації.
- recipe_disabled = None¶
Встановіть непорожнє рядкове значення, щоб вимкнути цей рецепт. Рядок буде використано замість повідомлення про вимикання.
- recipe_specific_options = None¶
Вказати параметри, які є специфічними для цього рецепта. Ці параметри будуть доступні користувачеві на вкладці «Додатково» вікна отримання новин або у рядку команди ebook-convert. Параметри вказують як словник із прив’язкою назви параметра до метаданих щодо параметра. Приклад:
recipe_specific_options = { 'edition_date': { 'short': 'The issue date to download', 'long': 'Specify a date in the format YYYY-mm-dd to download the issue corresponding to that date', 'default': 'current', } }
При запуску рецепта self.recipe_specific_options буде словником із прив’язкою назви параметра до значення параметра, яка вказано користувачем. Якщо користувач не вкаже значення, значення буде визначено за значенням „default“. Якщо типового значення не вказано, параметра не буде у словнику.
- recursions = 0¶
Кількість рівнів посилань, за якими слід переходити на сторінках статті.
- remove_attributes = []¶
Список атрибутів для вилучення з усіх теґів. Приклад:
remove_attributes = ['style', 'font']
- remove_empty_feeds = False¶
Якщо має значення True, з виведення буде прибрано порожні подачі. Цей параметр не спрацює, якщо parse_index перевизначено у підкласі. Його призначено лише для рецептів, які повертають список подач за допомогою feeds або
get_feeds()
. Також використовується, якщо використано параметр ignore_duplicate_articles.
- remove_javascript = True¶
Зручний прапорець для усування усіх теґів JavaScript з отриманого HTML
- remove_tags = []¶
Список теґів для вилучення. Вказані теґи буде вилучено з отриманого HTML. Теґ вказується як словник у такій формі:
{ name : 'tag name', #e.g. 'div' attrs : a dictionary, #e.g. {'class': 'advertisment'} }
Усі ключі є необов’язковими. Повний опис критеріїв пошуку можна знайти у розділі Beautiful Soup. Типовий приклад:
remove_tags = [dict(name='div', class_='advert')]
Це вилучить усі теґи <div class=»advert»> і усі дочірні теґи з отриманого HTML.
- remove_tags_after = None¶
Вилучити усі теґи, які буде знайдено після вказаного теґу. Щоб дізнатися більше про формат визначення теґу, див. розділ щодо
BasicNewsRecipe.remove_tags
. Приклад:remove_tags_after = [dict(id='content')]
вилучить усі теґи після першого елемента з id=»content».
- remove_tags_before = None¶
Вилучити усі теґи, які буде знайдено до вказаного теґу. Щоб дізнатися більше про формат визначення теґу, див. розділ щодо
BasicNewsRecipe.remove_tags
. Приклад:remove_tags_before = dict(id='content')
вилучить усі теґи до першого елемента з id=»content».
- requires_version = (0, 6, 0)¶
Мінімальна версія calibre, потрібна для використання цього скрипту
- resolve_internal_links = False¶
Якщо встановлено значення True, посилання у отриманих статтях на інші отримані статті замінюються так, щоб вони вказували на отриману копію статті, а не на її оригінал у інтернеті. Якщо ви встановите значення True, вам також варто реалізувати метод
canonicalize_internal_url()
, щоб мати змогу обробляти схему адрес відповідного сайта.
- reverse_article_order = False¶
Змінити порядок статей в усіх подачах на зворотний
- scale_news_images = None¶
Максимальні розміри (w,h), до яких слід масштабувати зображення. Якщо scale_news_images_to_device має значення True, профілем виведення даних буде встановлено розмірності екрана пристрою, якщо такий профіль встановлено. Якщо профіль не встановлено, значення змінено не буде (типовим значенням є None).
- scale_news_images_to_device = True¶
Змінити масштаб зображень так, щоб воно відповідало розмірам екрана пристрою, визначеним пристроєм виведення. Ігнорується, якщо профіль виведення не встановлено.
- simultaneous_downloads = 5¶
Кількість одночасних сеансів отримання даних. Встановіть значення 1, якщо сервер працює не як слід. Автоматично зменшується до 1, якщо
BasicNewsRecipe.delay
> 0
- summary_length = 500¶
Максимальна кількість символів у короткому описі.
- template_css = '\n .article_date {\n color: gray; font-family: monospace;\n }\n\n .article_description {\n text-indent: 0pt;\n }\n\n a.article {\n font-weight: bold; text-align:left;\n }\n\n a.feed {\n font-weight: bold;\n }\n\n .calibre_navbar {\n font-family:monospace;\n }\n '¶
Таблиця стилів CSS, яка використовується для шаблонів, тобто для панелей навігації та таблиці змісту. Замість перевизначення цієї змінної, вам слід скористатися у вашому рецепті extra_css для налаштовування вигляду та поведінки.
- timefmt = ' [%a, %d %b %Y]'¶
Рядок формату для дати, показаної на першій сторінці. Типово: Назва_Дня, Номер_Дня Назва_Місяця Рік
- timeout = 120.0¶
Час очікування на отримання файлів із сервера, у секундах
- title = 'Невідоме джерело новин'¶
Заголовок, який слід використати для книги
- use_embedded_content = None¶
Зазвичай, ми намагаємося встановити, чи містить подача повні тексти статей на основі об’єму вбудованих даних. Якщо має значення None, буде використано типовий спосіб визначення. Якщо має значення True, програма завжди вважатиме, що у подачу вбудовано дані. Якщо ж має значення False, програма завжди вважатиме, що у подачі не міститься вмісту статей.