From 51e9239b9d499fa80c3024fc27a849b3edff87ab Mon Sep 17 00:00:00 2001 From: Simon Rieger Date: Sat, 21 Sep 2024 20:28:37 +0200 Subject: [PATCH] add download script for pad download --- README.md | 7 ++++++- crawl_url.sh | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100755 crawl_url.sh diff --git a/README.md b/README.md index 12abed7..c3f4fc4 100755 --- a/README.md +++ b/README.md @@ -86,4 +86,9 @@ git reset --hard 8& git clean -dfx ~~~ pacman -S qemu-user-static qemu-user-static-binfmt https://wiki.archlinux.org/title/QEMU#Chrooting_into_arm/arm64_environment_from_x86_64 -~~~ \ No newline at end of file +~~~ + +### Side Crowling on a etherpad-lite pad +~~~ +cat urls | xargs -I+ wget --recursive '+/export/markdown' -erobots=off ; grep -r -o -E --no-filename 'pad.stratum0.org/p/dc[a-zA-Z0-9-]*' pad.stratum0.org >> urls; sort -u -o urls urls +~~~ diff --git a/crawl_url.sh b/crawl_url.sh new file mode 100755 index 0000000..b2496a7 --- /dev/null +++ b/crawl_url.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +base_url="https://pad.stratum0.org/p/dc/export/txt" +depth=${1:-3} # Suchtiefe als Parameter, Standard ist 3 +user_agent="Mozilla/5.0 (compatible; EtherpadCrawler/1.0)" +delay=0 # Verzögerung zwischen Anfragen in Sekunden + +# Funktion zum Crawlen einer URL +crawl_url() { + local url=$1 + local current_depth=$2 + + if [ $current_depth -gt $depth ]; then + return + fi + + echo "Durchsuche: $url" + + # Verwende curl mit Fehlerbehandlung und User-Agent + response=$(curl -s -A "$user_agent" -m 30 "$url") + if [ $? -ne 0 ]; then + echo "Fehler beim Abrufen von $url" + return + fi + + # Extrahiere Links effizienter + links=$(echo "$response" | grep -oP '(href="|)https?://pad\.stratum0\.org/p/dc-[^"\s]+' | sed 's/^href="//g') + + for link in $links; do + echo "Gefunden: $link" + # Verzögerung zwischen Anfragen + sleep $delay + crawl_url "$link" $((current_depth + 1)) & + done +} + +# Starte den Crawl-Prozess +crawl_url "$base_url" 1 +wait # Warte auf alle Hintergrundprozesse