레시피 API 문서¶
레시피 작성을 위한 API는 :class:`BasicNewsRecipe`에 의해 정의됩니다.
- class calibre.web.feeds.news.BasicNewsRecipe(options, log, progress_reporter)[소스]¶
모든 레시피에 필요한 논리를 포함하는 기본 클래스입니다. 이 클래스의 기능들을 하나하나 수정하여 덮어써나감으로써 점점 더 사용자에게 알맞으면서도 강력한 레시피로 만들어 갈 수 있습니다. 레시피 작성에 대한 튜토리얼 소개는 :doc:`news`를 참조하세요.
- classmethod adeify_images(soup)[소스]¶
레시피가 생성한 EPUB를 Adobe Digital Editions로 보았을 때 이미지 표시에 문제가 있다면
postprocess_html()메서드 안에서 이 메서드를 호출하세요.
- classmethod image_url_processor(baseurl, url)[소스]¶
이미지 URL에 대해 일부 처리를 수행합니다(예: 동적으로 생성된 이미지의 크기 제한 제거 등). 처리된 URL을 반환합니다. 이미지 가져오기를 건너뛰려면 None이나 빈 문자열을 반환하세요.
- classmethod print_version(url)[소스]¶
기사 콘텐츠가 있는 웹페이지를 가리키는 `url`을 받아, 기사의 인쇄 버전을 가리키는 :term:`URL`을 반환합니다. 기본적으로 아무 작업도 수행하지 않습니다. 예:
def print_version(self, url): return url + '?&pagewanted=print'
- classmethod tag_to_string(tag, use_alt=True, normalize_whitespace=True)[소스]¶
BeautifulSoup :code:`Tag`를 받아 CDATA 섹션과 alt 태그 속성을 포함하여 텍스트를 재귀적으로 추출하는 편의 메서드입니다. 비어 있을 수도 있는 유니코드 문자열을 반환합니다.
use_alt: `True`이면 텍스트 콘텐츠가 없는 태그에 대해 alt 속성을 사용하려고 시도합니다
tag: BeautifulSoup
Tag
- abort_article(msg=None)[소스]¶
전처리 메서드 중 하나 안에서 이 메서드를 호출하여 현재 기사의 다운로드를 중단하세요. 순수 동영상 기사와 같이 부적절한 콘텐츠가 포함된 기사를 건너뛰는 데 유용합니다.
- add_toc_thumbnail(article, src)[소스]¶
기사 안에 있는 <img> 태그 중 목차에서 기사를 나타내는 썸네일 이미지로서 사용하기 적합한 것을 src 속성으로 하여 이 메서드를 populate_article_metadata 내부에서 호출하세요. 썸네일 이미지가 실제로 사용될지 여부는 장치마다 다릅니다(현재 Kindle에서만 사용). 참조되는 이미지는 성공적으로 다운로드된 것이어야 합니다. 그렇지 않으면 무시됩니다.
- canonicalize_internal_url(url, is_link=True)[소스]¶
``url``의 정규 표현 집합을 반환합니다. 기본 구현은 쿼리 매개 변수, 프래그먼트 등을 무시하고 URL의 서버 호스트명과 경로만 사용합니다. 정규 표현은 이 뉴스 소스의 모든 URL에서 고유해야 합니다. 고유하지 않으면 내부 링크가 잘못 해석될 수 있습니다.
- 매개변수:
is_link – URL이 HTML 파일의 내부 링크에서 오는 경우 True입니다. URL이 기사를 다운로드하는 데 사용된 URL인 경우 False입니다.
- clone_browser(br)[소스]¶
브라우저 br을 복제합니다. 복제된 브라우저는 멀티스레드 다운로드에 사용됩니다(mechanize가 thread-safe하지 않기 때문). 기본 복제 루틴이 대부분의 사용자 맞춤 설정을 잡아내야 합니다만, 레시피 안에서 특이한 방식을 사용하고 있다면 이 메서드를 레시피 안에서 덮어쓰고 수동으로 복제하세요.
복제된 브라우저 인스턴스는 쿠키 처리를 별도로 맞춤 설정하지 않았다면 기본값으로 동일한 thread-safe CookieJar를 사용합니다.
- download()[소스]¶
이 레시피의 피드에 해당하는 모든 기사를 다운로드하고 전처리합니다. 이 메서드는 특정 레시피 인스턴스에서 단 한 번만 호출되어야 합니다. 한 번 이상 호출하면 정의되지 않은 동작이 발생할 수 있습니다. :return: index.html 경로
- extract_readable_article(html, url)[소스]¶
‘html’에서 주요 기사 콘텐츠를 추출하고 정리한 후 (article_html, extracted_title) 튜플로 반환합니다. Arc90의 원래 가독성 알고리즘을 기반으로 합니다.
- get_article_url(article)[소스]¶
서브클래스에서 덮어써서 각 기사의 콘텐츠를 가리키는 :term:`URL`의 추출을 맞춤 설정하세요. 기사 URL을 반환합니다. 피드에서 파싱된 기사를 나타내는 객체인 `article`과 함께 호출됩니다. `feedparser <https://pythonhosted.org/feedparser/>`_를 참조하세요. 기본적으로 원본 링크를 찾습니다(FeedBurner나 Pheedo와 같은 서비스를 통해 신디케이트된 피드의 경우). 찾으면 해당 링크를 반환하고, 그렇지 않으면 `article.link <https://pythonhosted.org/feedparser/reference-entry-link.html>`_를 반환합니다.
- get_browser(*args, **kwargs)[소스]¶
웹에서 문서를 가져오는 데 사용되는 브라우저 인스턴스를 반환합니다. 기본적으로 쿠키를 지원하고, robots.txt를 무시하고, 새로고침을 처리하며, 임의의 일반 사용자 에이전트를 가진 mechanize 브라우저 인스턴스를 반환합니다.
브라우저를 맞춤 설정하려면 서브클래스에서 이 메서드를 다음과 같이 덮어쓰세요:
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()[소스]¶
이 호의 표지 이미지에 대한 URL`을 반환하거나 `None`을 반환합니다. 기본적으로 보통 `None`인 `self.cover_url 멤버의 값을 반환합니다. 레시피가 전자책의 표지를 다운로드하도록 하려면 서브클래스에서 이 메서드를 덮어쓰거나, 이 메서드가 호출되기 전에 멤버 변수 `self.cover_url`을 설정하세요.
- get_feeds()[소스]¶
이 프로필에 대해 가져올 RSS 피드 목록을 반환합니다. 목록의 각 요소는 (제목, url) 형식의 2요소 튜플이어야 합니다. 제목이 None이거나 빈 문자열이면 피드의 제목이 사용됩니다. 이 메서드는 레시피가 다운로드할 피드 목록을 파악하기 위해 일부 처리를 수행해야 하는 경우에 유용합니다. 그렇다면 서브클래스에서 덮어쓰세요.
- get_masthead_url()[소스]¶
이 호의 마스트헤드 이미지에 대한 URL`을 반환하거나 `None`을 반환합니다. 기본적으로 보통 `None`인 `self.masthead_url 멤버의 값을 반환합니다. 레시피가 전자책의 마스트헤드를 다운로드하도록 하려면 서브클래스에서 이 메서드를 덮어쓰거나, 이 메서드가 호출되기 전에 멤버 변수 `self.masthead_url`을 설정하세요. 마스트헤드 이미지는 Kindle MOBI 파일에서 사용됩니다.
- get_obfuscated_article(url)[소스]¶
articles_are_obfuscated`를 설정하면 이 메서드가 모든 기사 URL에 대해 호출됩니다. 기사 HTML이 포함된 파일 시스템의 파일 경로를 반환해야 합니다. 해당 파일은 재귀적 HTML 가져오기 엔진에 의해 처리되므로 웹의 페이지/이미지에 대한 링크를 포함할 수 있습니다. 또는 {‘data’: <HTML 데이터>, ‘url’: <기사의 해석된 URL>} 형식의 딕셔너리를 반환할 수도 있습니다. 이렇게 하면 임시 파일을 생성할 필요가 없습니다. 예를 들어 리디렉션으로 인해 기사의 실제 URL이 이 메서드에 전달된 URL과 다른 경우 딕셔너리의 `url 키가 유용합니다. URL이 변경되지 않은 경우 생략할 수 있습니다.
이 메서드는 기사 콘텐츠에 자동으로 접근하기 어렵게 만드는 사이트에서 일반적으로 유용합니다.
- get_url_specific_delay(url)[소스]¶
이 URL을 다운로드하기 전의 지연 시간(초)을 반환합니다. 지정된 URL에 대한 지연 시간을 프로그래밍 방식으로 결정하려면 서브클래스에서 이 메서드를 덮어쓰고, 영향을 주지 않으려는 URL에 대해서는 기본적으로 self.delay를 반환하세요.
- 반환:
부동소수점 숫자, 지연 시간(초).
- index_to_soup(url_or_raw, raw=False, as_tree=False, save_raw=None)[소스]¶
인덱스 페이지의 URL을 받아 그에 대한 `BeautifulSoup <https://www.crummy.com/software/BeautifulSoup/bs4/doc>`__을 반환하는 편의 메서드입니다.
url_or_raw: URL이거나 문자열로 된 다운로드된 인덱스 페이지
- is_link_wanted(url, tag)[소스]¶
링크를 따라가야 하면 True를, 그렇지 않으면 False를 반환합니다. 기본적으로 NotImplementedError를 발생시켜 다운로더가 무시하도록 합니다.
- 매개변수:
url – 따라갈 URL
tag – URL이 파생된 태그
- parse_index()[소스]¶
이 메서드는 피드 대신 웹사이트를 파싱하여 기사 목록을 생성하는 레시피에서 구현해야 합니다. 일반적으로 현재 인쇄판의 모든 기사를 나열하는 “인쇄판” 웹페이지가 있는 뉴스 소스에 사용됩니다. 이 함수가 구현되면 :meth:`BasicNewsRecipe.parse_feeds`보다 우선하여 사용됩니다.
목록을 반환해야 합니다. 목록의 각 요소는
('피드 제목', 기사 목록)형식의 2요소 튜플이어야 합니다.각 기사 목록은 다음 형식의 딕셔너리를 포함해야 합니다:
{ '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가 오류 대신 사용자에게 간단한 메시지를 표시하도록 하려면 :meth:`abort_recipe_processing`을 호출하세요.
- populate_article_metadata(article, soup, first)[소스]¶
기사에 속하는 각 HTML 페이지가 다운로드될 때 호출됩니다. 파싱된 HTML(soup)에서 저자/요약 등의 기사 메타데이터를 가져오는 데 사용하기 위한 것입니다.
- 매개변수:
article –
calibre.web.feeds.Article클래스의 객체입니다. 요약을 변경했다면 text_summary도 함께 변경해야 합니다soup – 이 기사에 속하는 파싱된 HTML
first – 파싱된 HTML이 기사의 첫 페이지인 경우에만 True입니다.
- postprocess_book(oeb, opts, log)[소스]¶
파싱된 다운로드된 전자책에 대해 필요한 사후 처리를 수행합니다.
- 매개변수:
oeb – OEBBook 객체
opts – 변환 옵션
- postprocess_html(soup, first_fetch)[소스]¶
이 메서드는 다운로드된 각 HTML 파일의 소스가 링크와 이미지를 위해 파싱된 후에 호출됩니다. :term:`HTML`에 대해 임의로 강력한 사후 처리를 수행하는 데 사용할 수 있습니다. 처리 후 `soup`를 반환해야 합니다.
- 매개변수:
soup – 다운로드된 :term:`HTML`을 포함하는 `BeautifulSoup <https://www.crummy.com/software/BeautifulSoup/bs4/doc/>`__ 인스턴스.
first_fetch – 기사의 첫 페이지이면 True입니다.
- preprocess_html(soup)[소스]¶
이 메서드는 다운로드된 각 HTML 파일의 소스가 링크와 이미지를 위해 파싱되기 전에 호출됩니다. remove_tags 등으로 지정된 정리 후에 호출됩니다. :term:`HTML`에 대해 임의로 강력한 전처리를 수행하는 데 사용할 수 있습니다. 처리 후 `soup`를 반환해야 합니다.
soup: 다운로드된 :term:`HTML`을 포함하는 `BeautifulSoup <https://www.crummy.com/software/BeautifulSoup/bs4/doc/>`__ 인스턴스.
- preprocess_image(img_data, image_url)[소스]¶
다운로드된 이미지 데이터에 대해 일부 처리를 수행합니다. 크기 조정이 수행되기 전에 원시 데이터에 대해 호출됩니다. 처리된 원시 데이터를 반환해야 합니다. 이미지를 건너뛰려면 None을 반환하세요.
- preprocess_raw_html(raw_html, url)[소스]¶
이 메서드는 다운로드된 각 HTML 파일의 소스가 객체 트리로 파싱되기 전에 호출됩니다. raw_html은 웹에서 다운로드된 원시 HTML을 나타내는 유니코드 문자열입니다. url은 HTML이 다운로드된 URL입니다.
이 메서드는 preprocess_regexps 전에 작동합니다.
이 메서드는 처리된 raw_html을 유니코드 객체로 반환해야 합니다.
- publication_date()[소스]¶
이 호가 발행된 날짜를 설정하려면 이 메서드를 사용합니다. 기본값은 다운로드 시점입니다. datetime.datetime 객체를 반환해야 합니다.
- skip_ad_pages(soup)[소스]¶
이 메서드는 다운로드된 각 HTML 파일의 소스에 remove_tags, keep_only_tags와 같은 정리 속성이 적용되기 전에 호출됩니다. preprocess_regexps는 이미 적용되었을 것입니다. 레시피가 광고 페이지를 건너뛸 수 있도록 하기 위한 것입니다. soup가 광고 페이지를 나타내면 실제 페이지의 HTML을 반환하세요. 그렇지 않으면 None을 반환하세요.
soup: 다운로드된 :term:`HTML`을 포함하는 `BeautifulSoup <https://www.crummy.com/software/BeautifulSoup/bs4/doc/>`__ 인스턴스.
- sort_index_by(index, weights)[소스]¶
`weights`에 따라 `index`의 제목을 정렬하는 편의 메서드입니다. `index`가 제자리에서 정렬됩니다. `index`를 반환합니다.
index: 제목 목록.
weights: 가중치를 제목에 매핑하는 딕셔너리입니다. index의 제목 중 weights에 없는 것이 있으면 가중치가 0으로 간주됩니다.
- articles_are_obfuscated = False¶
True로 설정하고 :meth:`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 mechanize 브라우저 엔진입니다. 그러나 로그인이 필요하지 않다면, 실제 Chromium 브라우저를 사용하여 네트워크 요청을 수행하는 ‘webengine’이나 Qt Networking 백엔드를 사용하는 ‘qt’로 변경하는 것을 고려하세요. ‘webengine’과 ‘qt’ 모두 mechanize가 지원하지 않는 HTTP/2를 지원하므로 봇 보호 서비스의 핑거프린팅이 더 어렵습니다.
True이면 탐색 모음이 가운데 정렬되고, 그렇지 않으면 왼쪽 정렬됩니다
- compress_news_images = False¶
False로 설정하면 모든 크기 조정 및 압축 매개 변수를 무시하고 이미지를 수정 없이 통과시킵니다. True이고 다른 압축 매개 변수가 기본값으로 남겨져 있으면, 이미지가 출력 프로필로 설정된 화면 크기에 맞게 조정되고 최대 (w * h)/16 크기로 압축됩니다(w x h는 조정된 이미지 크기).
- compress_news_images_auto_size = 16¶
JPEG 이미지를 자동 압축할 때 사용하는 계수입니다. None으로 설정하면 자동 압축이 비활성화됩니다. 그렇지 않으면, w x h가 픽셀 단위의 이미지 크기일 때 품질 수준을 낮춰 가능한 한 (w * h)/compress_news_images_auto_size 바이트로 크기를 줄입니다. 최소 JPEG 품질은 5/100이므로 이 제약 조건이 충족되지 않을 수 있습니다. 이 매개 변수는 이미지에 고정 최대 크기를 제공하는 compress_news_images_max_size 매개 변수로 재정의할 수 있습니다. scale_news_images_to_device를 활성화하면 이미지가 먼저 조정된 후 크기가 (w * h)/factor 미만이 될 때까지 품질이 낮아집니다(w와 h는 이제 조정된 이미지 크기). 즉, 이 압축은 크기 조정 후에 발생합니다.
- compress_news_images_max_size = None¶
JPEG 품질을 설정하여 이미지가 주어진 크기(KBytes)를 초과하지 않도록 합니다. 설정하면 이 매개 변수가 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’)는 표지에 왼쪽과 오른쪽에 10px, 위쪽과 아래쪽에 15px의 흰색 여백을 추가합니다. 색상 이름은 `여기 <https://www.imagemagick.org/script/color.php>`_에 정의되어 있습니다. 어떤 이유에서인지 Windows에서 white가 항상 작동하지 않는 점에 유의하세요. 대신 #ffffff를 사용하세요
- delay = 0¶
연속 다운로드 사이의 기본 지연 시간(초)입니다. 인수는 더 정확한 시간을 나타내기 위해 부동소수점 숫자일 수 있습니다. URL별 지연 시간을 구현하려면 :meth:`get_url_specific_delay`를 참조하세요.
- description = ''¶
이 레시피가 다운로드하는 콘텐츠를 설명하는 몇 줄입니다. 주로 레시피 목록을 표시하는 GUI에서 사용됩니다.
- encoding = None¶
잘못된 문자 집합 명세를 가진 사이트에 대한 인코딩 재정의를 지정하세요. 가장 일반적인 것은 ``latin1``을 지정하고 ``cp1252``를 사용하는 것입니다. None이면 인코딩을 감지하려고 시도합니다. 호출 가능 객체이면 레시피 객체와 디코딩할 소스의 두 인수로 호출됩니다. 디코딩된 소스를 반환해야 합니다.
- extra_css = None¶
다운로드된 HTML 파일에 추가해야 할 추가 CSS`를 지정하세요. 닫는 ` 태그 바로 앞의 <style> 태그에 삽입되어 개별 HTML 태그의 style 속성을 사용하여 선언된 것을 제외한 모든 CSS`를 재정의합니다. 프로그래밍 방식으로 extra_css를 생성하려면 대신 :meth:`get_extra_css() 메서드를 덮어쓰세요. 예:
extra_css = '.heading { font: serif x-large }'
- filter_regexps = []¶
무시할 링크를 결정하는 정규 표현식 목록입니다. 비어 있으면 무시됩니다. is_link_wanted가 구현되지 않은 경우에만 사용됩니다. 예:
filter_regexps = [r'ads\.doubleclick\.net']
`ads.doubleclick.net`이 포함된 모든 URL을 제거합니다.
BasicNewsRecipe.match_regexps또는BasicNewsRecipe.filter_regexps중 하나만 정의해야 합니다.
- handle_gzip = True¶
mechanize 브라우저에서 gzipped 전송을 사용하지 않으려면 False로 설정하세요. 일부 오래된 서버는 gzip에서 문제가 발생할 수 있습니다.
- ignore_duplicate_articles = None¶
둘 이상의 섹션에 존재하는 기사의 중복을 무시합니다. 중복 기사는 동일한 제목 및/또는 URL을 가진 기사입니다. 동일한 제목의 기사를 무시하려면 다음으로 설정하세요:
ignore_duplicate_articles = {'title'}
대신 URL을 사용하려면 다음으로 설정하세요:
ignore_duplicate_articles = {'url'}
제목 또는 URL로 일치시키려면 다음으로 설정하세요:
ignore_duplicate_articles = {'title', 'url'}
- keep_only_tags = []¶
지정된 태그와 그 자식만 유지합니다. 태그 지정 형식은
BasicNewsRecipe.remove_tags`를 참조하세요. 이 목록이 비어 있지 않으면 `태그가 비워지고 이 목록의 항목과 일치하는 태그로 다시 채워집니다. 예:keep_only_tags = [dict(id=['content', 'heading'])]
- language = 'und'¶
뉴스의 언어입니다. 두 글자 또는 세 글자 길이의 ISO-639 코드여야 합니다
- masthead_url = None¶
기본적으로 calibre는 마스트헤드에 기본 이미지를 사용합니다(Kindle 전용). 마스트헤드로 사용할 URL을 제공하려면 레시피에서 이 값을 재정의하세요.
- match_regexps = []¶
따라갈 링크를 결정하는 정규 표현식 목록입니다. 비어 있으면 무시됩니다. is_link_wanted가 구현되지 않은 경우에만 사용됩니다. 예:
match_regexps = [r'page=[0-9]+']
`page=숫자`가 포함된 모든 URL과 일치합니다.
BasicNewsRecipe.match_regexps또는BasicNewsRecipe.filter_regexps중 하나만 정의해야 합니다.
- max_articles_per_feed = 100¶
각 피드에서 다운로드할 최대 기사 수입니다. 주로 기사 날짜가 없는 피드에 유용합니다. 대부분의 피드에서는 :attr:`BasicNewsRecipe.oldest_article`을 사용하세요
- needs_subscription = False¶
True이면 GUI가 다운로드 중 사용할 사용자 이름과 비밀번호를 사용자에게 묻습니다. “optional”로 설정하면 사용자 이름과 비밀번호 사용이 선택 사항이 됩니다.
- no_stylesheets = False¶
전자책 형식으로 변환하기에 부적합할 정도로 스타일시트가 지나치게 복잡한 웹사이트에서 스타일시트 로드를 비활성화하는 편의 플래그입니다. True이면 스타일시트를 다운로드하거나 처리하지 않습니다.
- oldest_article = 7.0¶
이 뉴스 소스에서 다운로드할 가장 오래된 기사. 일 단위.
- preprocess_regexps = []¶
다운로드된 HTML`에 대해 실행할 :term:`regexp 치환 규칙 목록입니다. 목록의 각 요소는 2요소 튜플이어야 합니다. 튜플의 첫 번째 요소는 컴파일된 정규 표현식이고, 두 번째 요소는 단일 일치 객체를 받아 일치를 대체할 문자열을 반환하는 호출 가능 객체입니다. 예:
preprocess_regexps = [ (re.compile(r'<!--Article ends here-->.*</body>', re.DOTALL|re.IGNORECASE), lambda match: '</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는 옵션 이름을 사용자가 지정한 옵션 값에 매핑하는 dict가 됩니다. 사용자가 옵션을 지정하지 않으면 ‘default’에 지정된 값을 갖습니다. 기본값이 지정되지 않은 경우 사용자가 해당 옵션을 지정하지 않으면 그 옵션은 dict에 아예 포함되지 않습니다.
- recursions = 0¶
기사 웹페이지에서 따라갈 링크의 단계 수입니다.
- remove_attributes = []¶
모든 태그에서 제거할 속성 목록입니다. 예:
remove_attributes = ['style', 'font']
- remove_empty_feeds = False¶
True이면 비어 있는 피드를 출력에서 제거합니다. 이 옵션은 하위 클래스에서 parse_index를 재정의한 경우에는 효과가 없습니다. feeds 또는 get_feeds를 사용해 피드 목록을 반환하는 레시피에서만 사용됩니다. ignore_duplicate_articles 옵션을 사용할 때도 함께 사용됩니다.
- remove_javascript = True¶
다운로드된 HTML에서 모든 JavaScript 태그를 제거하는 편리한 플래그
- remove_tags = []¶
제거할 태그 목록입니다. 지정된 태그가 다운로드된 HTML에서 제거됩니다. 태그는 다음 형식의 딕셔너리로 지정됩니다:
{ name : 'tag name', #e.g. 'div' attrs : a dictionary, #e.g. {'class': 'advertisement'} }
모든 키는 선택 사항입니다. 검색 기준에 대한 전체 설명은 `Beautiful Soup <https://www.crummy.com/software/BeautifulSoup/bs4/doc/#searching-the-tree>`__을 참조하세요. 일반적인 예:
remove_tags = [dict(name='div', class_='advert')]
다운로드된 HTML`에서 모든 ` 태그와 그 자식을 제거합니다.
- remove_tags_after = None¶
지정된 태그 이후에 오는 모든 태그를 제거합니다. 태그 지정 형식은 :attr:`BasicNewsRecipe.remove_tags`를 참조하세요. 예:
remove_tags_after = [dict(id='content')]
- remove_tags_before = None¶
지정된 태그 이전에 오는 모든 태그를 제거합니다. 태그 지정 형식은 :attr:`BasicNewsRecipe.remove_tags`를 참조하세요. 예:
remove_tags_before = dict(id='content')
- requires_version = (0, 6, 0)¶
이 레시피를 사용하는 데 필요한 최소 calibre 버전
- resolve_internal_links = False¶
True로 설정하면 다운로드된 기사 안에서 다른 다운로드된 기사를 가리키는 링크가 원래 웹 URL이 아니라 다운로드된 기사 사본을 가리키도록 변경됩니다. 이를 True로 설정하면 사용 중인 웹사이트의 URL 체계에 맞게 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로 설정하세요.
BasicNewsRecipe.delay> 0이면 자동으로 1로 줄어듭니다
- 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이면 피드에 내장 콘텐츠가 없다고 항상 가정합니다.
