Source code for autoextract_poet.pages
from typing import Optional
import attr
from autoextract_poet.items import Article, Product, ProductList, ArticleList, \
Comments, ForumPosts, JobPosting, RealEstate, Reviews, Vehicle
from autoextract_poet.page_inputs import AutoExtractHtml, \
AutoExtractProductData, AutoExtractProductListData, AutoExtractArticleData, \
T, AutoExtractArticleListData, AutoExtractCommentsData, \
AutoExtractForumPostsData, AutoExtractJobPostingData, \
AutoExtractRealEstateData, AutoExtractReviewsData, AutoExtractVehicleData
from autoextract_poet.util import export
from web_poet import Injectable, ItemPage
from web_poet.mixins import ResponseShortcutsMixin
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractWebPage(Injectable, ResponseShortcutsMixin):
"""Base Page Object which requires :class:`~.AutoExtractHtml`
and provides XPath / CSS shortcuts.
Use this class as a base class for Page Objects which work on
the browser HTML provided by AutoExtract.
"""
response: AutoExtractHtml
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractItemWebPage(AutoExtractWebPage, ItemPage):
""":class:`AutoExtractWebPage` that requires the :meth:`to_item` method to
be implemented.
"""
pass
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractArticlePage(ItemPage):
"""
Article data from AutoExtract
https://docs.zyte.com/automatic-extraction/article.html
"""
article_data: AutoExtractArticleData
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractArticleListPage(ItemPage):
"""
Article list data from AutoExtract
https://docs.zyte.com/automatic-extraction/article-list.html
"""
article_list_data: AutoExtractArticleListData
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractProductPage(ItemPage):
"""
Product data from AutoExtract
https://docs.zyte.com/automatic-extraction/product.html
"""
product_data: AutoExtractProductData
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractProductListPage(ItemPage):
"""
Product list data from AutoExtract
https://docs.zyte.com/automatic-extraction/product-list.html
"""
product_list_data: AutoExtractProductListData
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractCommentsPage(ItemPage):
"""
Comments data from AutoExtract
https://docs.zyte.com/automatic-extraction/comment.html
"""
comments_data: AutoExtractCommentsData
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractForumPostsPage(ItemPage):
"""
Forum posts data from AutoExtract
https://docs.zyte.com/automatic-extraction/forum-post.html
"""
forum_posts_data: AutoExtractForumPostsData
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractJobPostingPage(ItemPage):
"""
Job posting data from AutoExtract
https://docs.zyte.com/automatic-extraction/job-posting.html
"""
job_posting_data: AutoExtractJobPostingData
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractRealEstatePage(ItemPage):
"""
Real estate data from AutoExtract
https://docs.zyte.com/automatic-extraction/real-estate.html
"""
real_estate_data: AutoExtractRealEstateData
[docs]@export
@attr.s(auto_attribs=True)
class AutoExtractReviewsPage(ItemPage):
"""
Reviews data from AutoExtract
https://docs.zyte.com/automatic-extraction/review.html
"""
reviews_data: AutoExtractReviewsData