old_contents: import scrapy
  
  from feeds.loaders import FeedEntryItemLoader
  from feeds.spiders import FeedsSpider
  
  
  class VerbraucherrechtAtSpider(FeedsSpider):
      name = "verbraucherrecht.at"
      start_urls = ["https://verbraucherrecht.at/cms/index.php?id=198"]
  
      feed_title = "Verbraucherrecht"
      feed_subtitle = "Neuigkeiten rund um Konsumentenschutz und Verbraucherrechte"
      feed_author_name = "Verein für Konsumenteninformation"
      feed_link = f"https://{name}"
      feed_logo = f"https://{name}/cms/fileadmin/imag/logo.gif"
  
      def parse(self, response):
          # Fetch only the current news page and deliberately ignore old news.
          for link in response.xpath(
              '//div[@class="news-list-container"]//h2/a/@href'
          ).extract():
              yield scrapy.Request(response.urljoin(link), self.parse_item)
  
      def parse_item(self, response):
          il = FeedEntryItemLoader(
              response=response,
              base_url=f"{self.feed_link}/cms/",
              timezone="Europe/Vienna",
              remove_elems=[".news-latest-date", ".news-single-rightbox", "hr", "h7"],
              remove_elems_xpath=[
                  '//div[@class="news-single-item"]/b[1]',
                  '//div[@class="news-single-item"]/br[1]',
              ],
              dayfirst=True,
          )
  
          il.add_value(
              "title", response.xpath("//head/title/text()").re_first(r"::: (.*)")
          )
  
          il.add_value("link", response.url)
  
          il.add_value(
              "updated",
              response.xpath('//div[@class="news-single-rightbox"]').re_first(
                  r"(\d{2}\.\d{2}\.\d{4})"
              ),
          )
  
          il.add_value(
              "author_name",
              response.xpath('//head/meta[@name="publisher"]/@content').re_first(
                  "recht.at, (.*);"
              ),
          )
          il.add_xpath("author_name", '//head/meta[@name="author"]/@content')
          il.add_value("author_name", self.name)
  
          il.add_xpath("author_email", '//head/meta[@name="reply-to"]/@content')
  
          il.add_css("content_html", ".news-single-item h7 font strong")
          il.add_css("content_html", ".news-single-item")
  
          return il.load_item()
  
new_contents: import scrapy
  
  from feeds.loaders import FeedEntryItemLoader
  from feeds.spiders import FeedsSpider
  
  
  class VerbraucherrechtAtSpider(FeedsSpider):
      name = "verbraucherrecht.at"
      start_urls = [f"https://{name}/aktuelle-news/5202"]
  
      feed_title = "Verbraucherrecht"
      feed_subtitle = "Neuigkeiten rund um Konsumentenschutz und Verbraucherrechte"
      feed_author_name = "Verein für Konsumenteninformation"
      feed_link = f"https://{name}"
      feed_icon = f"https://{name}/themes/custom/wdm/images/favicon/favicon-vki.ico"
      feed_logo = f"https://{name}/themes/custom/wdm/images/logo/logo-vki-verbraucherrecht.svg"  # noqa
  
      def parse(self, response):
          # Fetch only the current news page and deliberately ignore old news.
          for url in response.css("div.view-content a::attr('href')").getall():
              yield scrapy.Request(url, self.parse_article)
  
      def parse_article(self, response):
          il = FeedEntryItemLoader(
              selector=response.css("div.content"),
              timezone="Europe/Vienna",
              remove_elems=["div.wrap>h1", "div#article-stat"],
              dayfirst=True,
              yearfirst=False,
          )
          il.add_css("title", "h1::text")
          il.add_value("link", response.url)
          il.add_css("updated", "time::attr('datetime')")
          il.add_css("content_html", "div.content")
          return il.load_item()
  
subject: Update verbraucherrecht.at for new website