Hilft Dir dabei, Deine BÜNDNIS 90/DIE GRÜNEN Website zu optimieren https://green-spider.netzbegruenung.de/
Go to file
Marian Steinbach 618e29d763
Job-Verwaltung mit RQ, und vieles mehr (#149)
* CLI: remove 'jobs' command, add 'manager'

* Add job definition

* Move jobs to manage folder

* Rename jobs to manager

* Add rq and redis dependencies

* Add docker-compose YAML

* Downgrade to alpine 3.8

* Adjust paths in Dockerfile, remove entrypoint

* Rename 'make spiderjobs' to 'make jobs'

* Fix docker exectution

* Adapt 'make jobs'

* Fix metadata scheme

* Add docker dependency

* Rendomize queue (a bit)

* Use latest image, remove debug output

* Make docker-compose file downwards-compatible

* Use latest instead of dev image tag

* Update docker-compose.yaml

* Adapt job start script

* Fix redis connection in manager

* Add support for increasing timeout via environment variable

* Adapt load_in_browser to cookies table schema change

* Fix execution

* Mitigate yaml warning

* Bump some dependency versions

* Report resource usage stats for each job

* checks/load_in_browser: Return DOM size, prevent multiple page loads

* Update .dockerignore

* Code update

* Script update

* Update README.md

* WIP

* WIP commit

* Update Dockerfile to alpine:edge and chromium v90

* Update TestCertificateChecker

* Set defaults for __init__ function

* Detect sunflower theme

* Update unit test for new datetime (zero-basing)

* Set logging prefs from Chromium in a new way

* Move datastore client instantiation

As it is not needed for all commands

* Change green-directory repository URL

* Add git settings for cloning green-directory

* Pin alpine version 3.14, fix py3-cryptography

* Use plain docker build progress output

* Add volumes to 'make test' docker run command

* Fix bug

* Update example command in README

* Update dependencies

* Add creation of Kubernetes jobs
2021-11-11 20:15:43 +01:00
.github Upgrade to GitHub-native Dependabot (#203) 2021-05-04 21:53:11 +02:00
checks Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
config Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
devops Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
export Fix full JSON export 2019-05-04 23:00:00 +02:00
kubernetes Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
manager Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
rating Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
spider Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
.dockerignore Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
.gitignore Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
.travis.yml Fehlerbehebung im url_reachability check (#108) 2019-04-19 00:35:28 +02:00
Dockerfile Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
KRITERIEN.md Liste der Qualitätskriterien aktualisiert (#155) 2020-03-24 23:26:57 +01:00
LICENSE Create LICENSE 2018-08-28 21:04:20 +02:00
Makefile Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
README.md Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
cli.py Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
docker-compose.yaml Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
index.yaml Add webapp deployment (#87) 2018-11-20 19:54:23 +01:00
job.py Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
k8s-job-manager.py Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00
requirements.txt Job-Verwaltung mit RQ, und vieles mehr (#149) 2021-11-11 20:15:43 +01:00

README.md

Green Spider

Initiative und Tools zur Förderung eines benutzer*innenfreundlichen Auftritts von Bündnis 90/Die Grünen im Web.

Zur Auswertung: https://green-spider.netzbegruenung.de/

Tools

Aktivitäten

Es ist geplant, auf Basis der gesammelten Informationen (siehe Spider) Informationen an die Betreiber*innen der Websites zu versenden. Hierzu müssen Prozesse erarbeitet und vermutlich weitere Tools geschaffen werden.

Community

Green Spider ist ein Projekt des netzbegrünung e. V. -- Mitwirkung ist herzlich willkommen.

Zur Kommunikation dient der Chatbegrünung-Kanal #green-spider sowie die Issues hier in diesem Repository.

Betrieb

Alle Informationen zum Betrieb befinden sich im Verzeichnis devops.

Entwicklung

Green Spider ist in Python 3 geschrieben und wird aktuell unter 3.6 getestet und ausgeführt.

Aufgrund zahlreicher Abhängigkeiten empfiehlt es sich, den Spider Code lokal in Docker auszuführen.

Das Image wird über den folgenden Befehl erzeugt:

make

Das dauert beim ersten Ausführen einige Zeit, wiel einige Python-Module das Kompilieren diverser Libraries erfordern. Nach dem ersten erfolgreichen Durchlauf dauert ein neuer Aufruf von make nur noch wenige Sekunden.

Tests ausführen

In aller Kürze: make test

Spider testweise ausführen (Debugging)

Der Spider kann einzelne URLs verarbeiten, ohne die Ergebnisse in eine Datenbank zu schreiben. Am einfachsten geht das über den make spider Befehl, so:

make spider ARGS="--url http://www.example.com/"

Ohne ARGS aufgerufen, arbeitet der Spider eine Jobliste ab. Dies erfordert Zugriff auf die entsprechende Datenbank.

Wenn nur eine einzelne Site gespidert werden soll, die Ergebnisse aber in die Datenbank geschrieben werden sollen, kann der Spider so mit --job und einem JSON-Object aufgerufen werden (Beispiel):

docker run --rm -ti \
  -v $(pwd)/volumes/dev-shm:/dev/shm \
  -v $(pwd)/secrets:/secrets \
  -v $(pwd)/screenshots:/screenshots \
  -v $(pwd)/volumes/chrome-userdir:/opt/chrome-userdir \
  --shm-size=2g \
  quay.io/netzbegruenung/green-spider:latest python3 cli.py \
    --credentials-path /secrets/datastore-writer.json \
    --loglevel debug \
    spider --job '{"url": "https://gruene-porta-westfalica.de/", "city": "Porta Westfalica", "country": "DE", "district": "Minden-Lübbecke", "level": "DE:ORTSVERBAND", "state":" Nordrhein-Westfalen", "type": "REGIONAL_CHAPTER"}'