marians / scrape-a-ris

Scrape-A-RIS is a scraper for assembly information systems (Ratsinformationssysteme) using Somacos SessionNet, written in Python.
9 stars 8 forks source link

Mehrere Versuche zum Abruf einer Seite machen #1

Open marians opened 11 years ago

marians commented 11 years ago

Es kommt vor, dass Seiten nicht korrekt geladen werden und dann trotzdem versucht wird, Inhalte darin zu finden. Ein Beispiel für die Fehlerausgabe in diesem Fall:

Getting submission 20062261 from https://www.duisburg.de/ratsinformationssystem/bi/vo0050.php?__kvonr=20062261
Traceback (most recent call last):
  File "main.py", line 119, in <module>
    scraper.work_from_queue()
  File "scrape-a-ris/risscraper/scraper.py", line 70, in work_from_queue
    self.get_submission(submission_id=self.submission_queue.get())
  File "scrape-a-ris/risscraper/scraper.py", line 408, in get_submission
    raise TemplateError('Cannot find table fields using SUBMISSION_DETAIL_IDENTIFIER_TD_XPATH')
risscraper.scraper.TemplateError: Cannot find table fields using SUBMISSION_DETAIL_IDENTIFIER_TD_XPATH

Es wäre sinnvoll, diesen Fall abzuwenden, in dem man genauer prüft, ob die Seite vollständig geladen wurde (wie kann man das machen?) und ggf. einen weiteren Request nach kurzer Wartezeit startet.

marians commented 11 years ago

Ist eventuell obsolet, wenn die Job Queue (#16) realisiert ist und Jobs nur dann entfernt werden, wenn sie erfolgreich erledigt wurden.

the-infinity commented 11 years ago

Spaßig, dass Dir das auch aufgefallen ist: genau das Problem habe ich bei Duisburg durch einen recht direkten Fix gelöst - es wird in der OpenRuhr Version exakt drei mal probiert bis er aufgibt und einen Fehler schmeisst.

marians commented 11 years ago

Heißt das, es wird einfach dreimal hintereinander dieselbe URL aufgerufen? Mit oder ohne Wartezeit?

the-infinity commented 11 years ago

Mit Wartezeit und es wird explizit nach dem Fehler gesucht. Ist dieses Commit hier: https://github.com/OpenRuhr/ris-scraper/commit/0078b15c151bf8d8d4e16ba55f4c7d730642fbac , vor allem Zeile 411 und 429ff. Sieht durch die zusätzlichen Tabs aus wie eine Riesen-Änderung, sind aber nur ein paar Zeilen + Tabs.