Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RSScrawler crawlt nicht mehr #261

Closed
DKeppi opened this issue Nov 2, 2018 · 31 comments
Closed

RSScrawler crawlt nicht mehr #261

DKeppi opened this issue Nov 2, 2018 · 31 comments
Assignees

Comments

@DKeppi
Copy link

DKeppi commented Nov 2, 2018

Habe schon die db gelöscht, alles neu eingetragen aber es wird nichts gecrawlt.
Auch ein Testlauf bringt kein Ergebnis.

Im log des Crons steht

Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/rsscrawler/RSScrawler.py", line 139, in crawler
total_time) + ")! Wartezeit bis zum nächsten Suchlauf: " + readable_time(wait))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 22: ordinal not in range(128)

Starte den RSScrawler mit:

killall rsscrawler
export PYTHONIOENCODING=utf-8
rsscrawler --config="/volume1/@appstore/RSScrawler-master"

Das hat bisher immer funktioniert!

@rix1337
Copy link
Owner

rix1337 commented Nov 2, 2018

Kannst du auf Python 3.5 oder neuer updaten?

Ich seh mir schnellstmöglich an.

@rix1337
Copy link
Owner

rix1337 commented Nov 2, 2018

Hast du die Möglichkeit, den RSScrawler ohne pip (die alte manuelle Methode) laufen zu lassen und in der betroffenen Zeile:
https://github.com/rix1337/RSScrawler/blob/98b010c3015c631423ffccbf0dd82e10004b2a0c/rsscrawler/RSScrawler.py#L139

Ein u vor ")! Wartezeit bis zum nächsten Suchlauf: zu ergänzen?

Muss vermutlich angepasst werden auf:

                print(time.strftime("%Y-%m-%d %H:%M:%S") +
                      u" - Alle Suchfunktion ausgeführt (Dauer: " + readable_time(
                    total_time) + u")! Wartezeit bis zum nächsten Suchlauf: " + readable_time(wait))

Wenn es dann läuft kann ich das heute abend fixen.

@rix1337 rix1337 self-assigned this Nov 2, 2018
@rix1337 rix1337 added the Fehler label Nov 2, 2018
@DKeppi
Copy link
Author

DKeppi commented Nov 2, 2018

Verwende das Standard python der Synology, für 3.5 müsste ich wohl wieder zu optware greifen.
Mal sehen was ich machen kann!

Das zusätzliche u bringt leider keine Änderung!

@rix1337
Copy link
Owner

rix1337 commented Nov 2, 2018

Hm, wenn das u nicht hilft, fehlt mir fürs erste ein Lösungsansatz. Probier bitte unbedingt Python 3.5 (besser sogar 3.7)

https://www.synology.com/de-de/dsm/packages/py3k sieht offiziell aus..

@DKeppi
Copy link
Author

DKeppi commented Nov 2, 2018

Habs jetzt mit python 3.5 probiert!

Der UnicodeDecodeError ist weg und es steht dass der nächste Suchlauf dann in 11m 18s stattfindet. Auch der Testlauf läuft durch.
Crawlt aber immer noch nichts...

@rix1337
Copy link
Owner

rix1337 commented Nov 2, 2018

Sehr gut, dann schließe ich das issue, da der fehler auf travis-ci mit python 2.7 nicht erscheint.

https://travis-ci.org/rix1337/RSScrawler/jobs/449699492

Der Crawler selbst crawlt nur, was du ihm vorgibst und aktuell auf den Feeds von MB/SJ etc. überhaupt gefunden werden kann. Prüf mal deine Suchlisten. Wenn wirklich gar nichts gefunden wird, kannst du deine DB und INI bereitstellen. An sich ist der DEBUG-Log dein bester freund. Dort steht, warum etwas nicht geaddet wurde, wenn der Crawler ein Release findet und ignoriert.

@rix1337 rix1337 closed this as completed Nov 2, 2018
@rix1337 rix1337 added Nicht reproduzierbar Fehlende Informationen and removed Fehler labels Nov 2, 2018
@DKeppi
Copy link
Author

DKeppi commented Nov 2, 2018

Ja klar, meine db und ini ist seit Version 4 im Einsatz.
Vor der Änderung mit dem jd gings noch, jetzt nicht mehr...
Wieso verwendest du bei travis-ci eigentlich noch den folderwatch Pfad, den braucht man durch die jd-API doch nicht mehr oder?

Ich starte den Crawler mal mit
python RSScrawler.py --testlauf --log-level=DEBUG

@rix1337
Copy link
Owner

rix1337 commented Nov 2, 2018

Travis könnte noch viel mehr, ich nutze das nur um zu sehen ob der aktuelle commit überhaupt auf den verschiedenen Python versionen startet.

Um myJD zu testen müsste ich öffentlich zugangsdaten für MyJDownloader mitgeben und damit einen echten jdownloader laufen lassen, der darüber steuerbar wäre... keine gute idee 😜

Schau dir den DEBUG log gerne genau an. Gerade wenn dort nichts stehen sollte, du aber definitiv ein release von hand selber findest, gib bescheid.

Der Crawler ist nur mittlerweile so clever, dass er nur soweit läuft, wie beim letzten suchlauf. D.h. wenn alles glatt läuft und nichts neues auf den feeds steht, sollte der suchlauf nur ein paar sekunden dauern.

@DKeppi
Copy link
Author

DKeppi commented Nov 2, 2018

python /usr/lib/python2.7/site-packages/rsscrawler/RSScrawler.py --testlauf --log-level=DEBUG
/usr/lib/python2.7/site-packages/fuzzywuzzy/fuzz.py:11: UserWarning: Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning
  warnings.warn('Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning')
┌──────────────────────────────────────────────┐
  RSScrawler v.5.2.8 von RiX
  https://github.com/rix1337/RSScrawler
└──────────────────────────────────────────────┘
Nutze das Verzeichnis /volume1/data/Sicherungen/Synology/RSScrawler für Einstellungen/Logs
Erfolgreich mit My JDownloader verbunden. Gerätename: MyJD
Der Webserver ist erreichbar unter http://192.168.178.23:9090
Liste ist leer. Stoppe Suche für Serien!
Liste ist leer. Stoppe Suche für Serien! (Staffeln/RegEx)
Liste ist leer. Stoppe Suche für Serien! (Staffeln)
--------Testlauf gestartet.--------
Aufgrund fehlender API-Zugangsdaten werden keine Filme aus Ombi importiert.
Aufgrund fehlender API-Zugangsdaten werden keine Serien aus Ombi importiert.
-----------Suchfunktion (YT) gestartet!-----------
Suche für YouTube deaktiviert!
-----------Suchfunktion (YT) ausgeführt!-----------
-----------Suchfunktion (DD) gestartet!-----------
-----------Suchfunktion (DD) ausgeführt!-----------
-----------Suchfunktion (SJ - Liste: SJ_Serien) gestartet!-----------
-----------Suchfunktion (SJ - Liste: SJ_Serien) ausgeführt!-----------
-----------Suchfunktion (SJ - Liste: SJ_Serien_Regex) gestartet!-----------
[ENGLISCH] [ viele Englische Releasetitel ] - Englische Releases deaktiviert
-----------Suchfunktion (SJ - Liste: SJ_Serien_Regex) ausgeführt!-----------
-----------Suchfunktion (SJ - Liste: SJ_Staffeln_Regex) gestartet!-----------
-----------Suchfunktion (SJ - Liste: SJ_Staffeln_Regex) ausgeführt!-----------
-----------Suchfunktion (MB - Liste: MB_Staffeln) gestartet!-----------
-----------Suchfunktion (MB - Liste: MB_Staffeln) ausgeführt!-----------
-----------Suchfunktion (MB - Liste: MB_Regex) gestartet!-----------
-----------Suchfunktion (MB - Liste: MB_Regex) ausgeführt!-----------
-----------Suchfunktion (MB - Liste: IMDB) gestartet!-----------
IMDB-Suchwert ist 0. Stoppe Suche für Filme! (IMDB)
-----------Suchfunktion (MB - Liste: IMDB) ausgeführt!-----------
-----------Suchfunktion (MB - Liste: MB_Filme) gestartet!-----------
Liste ist leer. Stoppe Suche für Filme! (MB_Filme)
-----------Suchfunktion (MB - Liste: MB_Filme) ausgeführt!-----------
-----------Suchfunktion (MB - Liste: MB_Staffeln) gestartet!-----------
Liste ist leer. Stoppe Suche für Filme! (MB_Staffeln)
-----------Suchfunktion (MB - Liste: MB_Staffeln) ausgeführt!-----------
-----------Suchfunktion (MB - Liste: MB_3D) gestartet!-----------
-----------Suchfunktion (MB - Liste: MB_3D) ausgeführt!-----------
---Testlauf ausgeführt (Dauer: 6.98s)!---
2018-11-02 11:10:27 - Testlauf ausgeführt (Dauer: 6.98s)!

In den Serien(Regex) steht:

DEUTSCH.Serientitel-GRP [valide Regex Strings mit Groups, die nur Deutsch releasen]

@DKeppi
Copy link
Author

DKeppi commented Nov 2, 2018

Einen cdc-reset hab ich auch schon gemacht!

@rix1337
Copy link
Owner

rix1337 commented Nov 2, 2018

Ah, mist, ich hatte kürzlich etwas am Handling der Releasetitel geändert, damit ein Listeneintrag wie bspw.
"Girls" nicht mehr auch "Powerpuff Girls" matcht.

Versuch mal deine RegEx einträge ohne DEUTSCH. zu nutzen. Die betroffenen Gruppen releasen eh nur Deusch.

Wenn das geht, passe ich die RegEx Hinweise an. Mir ist es lieber das die Suche genauer ist, statt im RegEx vorne noch nach DEUTSCH/ENGLISCH unterscheiden zu können. Dazu wäre stattdessen auch einfach ein .German. im RegEx-Eintrag nutzbar.

@rix1337 rix1337 added Fehler and removed Nicht reproduzierbar Fehlende Informationen labels Nov 2, 2018
@rix1337 rix1337 reopened this Nov 2, 2018
@DKeppi
Copy link
Author

DKeppi commented Nov 2, 2018

Danke für den Hinweis, ohne DEUTSCH funktioniert es :)

@rix1337
Copy link
Owner

rix1337 commented Nov 2, 2018

Sehr schön. Dann passe ich den Hinweis im Hilfe-Bereich an

@DKeppi
Copy link
Author

DKeppi commented Nov 3, 2018

@rix1337
Copy link
Owner

rix1337 commented Nov 3, 2018

Nein, da die Prüfung auf eckige Klammern auch im RegEx verhindert, dass falsche Episoden geaddet werden.

Wie oben beschrieben wird sonst bspw. bei Love als Sucheintrag (Love.* im Regex) einfach jede Folge mit "Love" irgendwo im Titel geaddet.

@rix1337
Copy link
Owner

rix1337 commented Nov 3, 2018

Die Groups releasen wie gesagt eh nur deutsch, ansonsten einfach im Regex noch ein .*German.* unterbringen.

@DKeppi
Copy link
Author

DKeppi commented Nov 3, 2018

Ok, danke für die Aufklärung - wollt nur mal nachfragen ;)

@rix1337 rix1337 closed this as completed Nov 3, 2018
@Norax1995
Copy link

Hallo,

bei mir tritt ebenfalls oben genannter Fehler auf. Daraufhin habe ich https://www.synology.com/de-de/dsm/packages/py3k installiert und den rsscrawler nochmal mit python3 -m pip install rsscrawler installieren lassen. Wenn ich jetzt jedoch rsscrawler per ssh ausführe, wird der rsscrawler über das bei Synology bereits vorinstallierte Python 2.7 gestartet. Wie kann ich ihn über Python 3.5 laufen lassen?

MfG

@rix1337
Copy link
Owner

rix1337 commented Nov 3, 2018

Gute Frage,.. versuchs mal mit python3 /usr/lib/python2.7/site-packages/rsscrawler/RSScrawler.py zu starten.
Wenn das klappt, liegt der Befehl rsscrawler noch in deinem Python 2.7 herum.

Versuchs in dem Fall rsscrawler mit dem python2 pip zu löschen und dann nochmal für python3 zu installieren.

pip uninstall rsscrawler dann python3 -m pip install -I rsscrawler

Beide befehle per root bzw. sudo ausführen.

rix1337 pushed a commit that referenced this issue Nov 3, 2018
@rix1337
Copy link
Owner

rix1337 commented Nov 3, 2018

In v.5.2.9 sollte der Fehler für Python 2.7 eigentlich gefixt sein. Release kommt gleich.

@Norax1995
Copy link

Der Rsscrawler lässt sich über putty nun problemlos mit Python 2.7 und 3.5 ausführen, aber wenn ich versuche eine Aufgabe im DSM zu erstellen, bekomme ich wenn ich "rsscrawler" eingebe folgenden Fehler:

Traceback (most recent call last):
  File "/bin/rsscrawler", line 11, in
    sys.exit(main())
  File "/usr/lib/python2.7/site-packages/rsscrawler/RSScrawler.py", line 179, in main
    print(u"┌──────────────────────────────────────────────┐")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-47: ordinal not in range(128)

Wenn ich den rsscrawler stattdessen mit 3.5 ausführe, kommt die ähnliche Meldung:

Traceback (most recent call last):
  File "/volume1/@appstore/py3k/usr/local/bin/rsscrawler", line 11, in
    sys.exit(main())
  File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/rsscrawler/RSScrawler.py", line 179, in main
    print(u"\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-47: ordinal not in range(128)

@rix1337
Copy link
Owner

rix1337 commented Nov 3, 2018

Ich habe keine diskstation.

Du musst aber sicherstellen dass auch die Aufgabe immer das encoding der Laufzeitumgebung richtig setzt.

Bau dir am besten ein Script das die Befehle von oben nacheinander ausführt:

killall rsscrawler
export PYTHONIOENCODING=utf-8
rsscrawler

Wenn du dort gleich alle drei Befehle angeben kannst, geht es auch ohne Script.

@rix1337
Copy link
Owner

rix1337 commented Nov 3, 2018

Probier mal
killall rsscrawler && export PYTHONIOENCODING=utf-8 && rsscrawler

@rix1337
Copy link
Owner

rix1337 commented Nov 3, 2018

Das sollte als einzelner Befehl reichen

@Norax1995
Copy link

Norax1995 commented Nov 4, 2018

Ein Fehler behoben und nun bahnt sich scheinbar schon der Nächste an. Immerhin lässt sich der crawler nun über das Script starten...

Standardausgabe/Fehler:
/usr/lib/python2.7/site-packages/fuzzywuzzy/fuzz.py:11: UserWarning: Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning
warnings.warn('Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning')
┌──────────────────────────────────────────────┐
RSScrawler v.5.2.9 von RiX
https://github.com/rix1337/RSScrawler
└──────────────────────────────────────────────┘
Wo sollen Einstellungen und Logs abgelegt werden? Leer lassen, um den aktuellen Pfad zu nutzen.
Pfad angeben:Traceback (most recent call last):
File "/bin/rsscrawler", line 11, in
sys.exit(main())
File "/usr/lib/python2.7/site-packages/rsscrawler/RSScrawler.py", line 187, in main
configpath = files.config(arguments['--config'])
File "/usr/lib/python2.7/site-packages/rsscrawler/files.py", line 26, in config
configpath = six.moves.input("Pfad angeben:")
EOFError: EOF when reading a line

Wenn ich ihn manuell ausführe, übernimmt er den Pfad den ich schon eingegeben habe.

┌──────────────────────────────────────────────┐
RSScrawler v.5.2.9 von RiX
https://github.com/rix1337/RSScrawler
└──────────────────────────────────────────────┘
Nutze das Verzeichnis /volume1/@appstore/RSScrawler für Einstellungen/Logs
Erfolgreich mit My JDownloader verbunden. Gerätename: JDownloader@root

Vielen Dank schon mal für die Hilfe!

@DKeppi
Copy link
Author

DKeppi commented Nov 4, 2018

Ich starte den RSScrawler auf der Synology über den Aufgabenplaner - Benutzerdefiniertes Script
Dort hab ich folgenes eingetragen:

killall rsscrawler
export PYTHONIOENCODING=utf-8
rsscrawler --config="/volume1/data/Sicherungen/Synology/RSScrawler"

Wobei /volume1/data/Sicherungen/Synology/RSScrawler der Pfad ist wo die db, ini und das log liegen!

Bei mir funktioniert das (mit python 2.7, RSSCrawler 5.2.10 und RegEx Einträgen ohne DEUTSCH am Anfang)!!!

@rix1337
Copy link
Owner

rix1337 commented Nov 4, 2018

@Norax1995 das ist kein fehler. Du musst dem Crawler beim ersten Start die Zugangsdaten mitteilen. Das geht natürlich nicht, weil die aufgabenplanung im Hintergrund läuft.

Gib deine my JDownloader Daten über die startparameter mit

@rix1337
Copy link
Owner

rix1337 commented Nov 4, 2018

Wenn ihr es zum laufen bekommen habt, wäre eine Schritt für Schritt Anleitung mit Screenshots perfekt fürs Wiki.

@DKeppi
Copy link
Author

DKeppi commented Nov 4, 2018

Auf der Synology ist standardmäßig python 2.7 vorhanden, daher habe ich eigentlich nicht mehr gemacht als:

1.) Per SSH (als root über sudo -i)pip nachinstalliert mittels

wget https://bootstrap.pypa.io/get-pip.py
chmod +x get-pip.py
python get-pip.py

2.) RSScrawler installiert mittels

pip install rsscrawler

3.) RSScrawler in den Aufgabenplaner (Benutzerdefiniertes Script) eingefügt mittels

killall rsscrawler
export PYTHONIOENCODING=utf-8
rsscrawler --config="/volume1/data/Sicherungen/Synology/RSScrawler"

Die ini, db & das log lagen dann im angegeben Pfad (der beliebig gewählt werden kann) und den Rest hab ich per Webinterface eingestellt!

@DKeppi
Copy link
Author

DKeppi commented Nov 4, 2018

Sorry, fast vergessen!

Der erste Start muss über SSH erfolgen - Pfadangabe & MyJDLogin

Habe das ganze nochmals auf meinem VirtualDSM durchgespielt und es geht :)

@Norax1995
Copy link

Bei mir funktioniert es jetzt auch ohne Fehlermeldung! Vielen Dank :)

Was ich noch ergänzen kann ist, dass ich anfangs den Fehler "Cannot call rmtree on a symbolic link" bekommen habe, als einzelne requirements installiert werden sollten, da noch alte Versionen von "Werkzeug" und "Jinja2" installiert waren, die nicht gelöscht werden konnten. Diese habe ich einfach mit pip uninstall gelöscht und danach lief es mit der neusten Version wie @DKeppi geschrieben hat. Mein Rat ist es einfach, sämtliche Python Versionen von Synology und Drittanbietern zu deinstallieren und das ganze am besten mit dem integrierten Python 2.7 laufen zu lassen, solange es noch unterstützt wird!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants