netzbegruenung / green-spider

Hilft Dir dabei, Deine BÜNDNIS 90/DIE GRÜNEN Website zu optimieren
https://green-spider.netzbegruenung.de/
Apache License 2.0
20 stars 8 forks source link

feedparser wirft exception: RuntimeError: generator raised StopIteration (gruene-in-zes.blogspot.com) #148

Closed marians closed 2 years ago

marians commented 5 years ago

Beim Aufruf dieser URL

https://gruene-in-zes.blogspot.com/feeds/posts/default?alt=rss

steigt der Spider mit dem folgenden Fehler aus:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/feedparser.py", line 3766, in _gen_georss_coords
    t = [nxt(), nxt()][::swap and -1 or 1]
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "cli.py", line 90, in <module>
    spider.execute_single_job(datastore_client, job, args.kind)
  File "/workdir/spider/spider.py", line 90, in execute_single_job
    result = check_and_rate_site(entry=job)
  File "/workdir/spider/spider.py", line 49, in check_and_rate_site
    result['checks'] = checks.perform_checks(entry['url'])
  File "/workdir/checks/__init__.py", line 74, in perform_checks
    result = checker.run()
  File "/workdir/checks/load_feeds.py", line 28, in run
    self.feeds[feed_url] = self.analyse_feed(feed_url)
  File "/workdir/checks/load_feeds.py", line 67, in analyse_feed
    data = feedparser.parse(feed_url)
  File "/usr/local/lib/python3.7/site-packages/feedparser.py", line 3956, in parse
    saxparser.parse(source)
  File "/usr/local/lib/python3.7/xml/sax/expatreader.py", line 111, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/local/lib/python3.7/xml/sax/xmlreader.py", line 125, in parse
    self.feed(buffer)
  File "/usr/local/lib/python3.7/xml/sax/expatreader.py", line 217, in feed
    self._parser.Parse(data, isFinal)
  File "/usr/src/python/Modules/pyexpat.c", line 471, in EndElement
  File "/usr/local/lib/python3.7/xml/sax/expatreader.py", line 381, in end_element_ns
    self._cont_handler.endElementNS(pair, None)
  File "/usr/local/lib/python3.7/site-packages/feedparser.py", line 2052, in endElementNS
    self.unknown_endtag(localname)
  File "/usr/local/lib/python3.7/site-packages/feedparser.py", line 696, in unknown_endtag
    method()
  File "/usr/local/lib/python3.7/site-packages/feedparser.py", line 1463, in _end_georss_point
    geometry = _parse_georss_point(self.pop('geometry'))
  File "/usr/local/lib/python3.7/site-packages/feedparser.py", line 3775, in _parse_georss_point
    coords = list(_gen_georss_coords(value, swap, dims))
RuntimeError: generator raised StopIteration

Als Folge dieses Problems werden die Ergebnisdaten für die Site, die auf diesen Feed verweist, nicht gespeichert.

Diese Exception sollte zunächst mal abgefangen werden, damit die Ausführung hier nicht abbricht. Wie es aussieht, ist nur diese eine Site betroffen. Damit lohnt sich weiterer Aufwand im Moment sicher nicht.

marians commented 5 years ago

Der Feed ist übrigens laut W3C validator nicht valide: https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fgruene-in-zes.blogspot.com%2Ffeeds%2Fposts%2Fdefault%3Falt%3Drss

marians commented 2 years ago

Der Feed ist inzwischen valide.