"Skompilowanie wszystkich wypowiedzi w wątku do pliku tekstowego"

Czy dałoby radę złączyć historie z wątku

w jedną całość? :slight_smile: bo przewijanie po wątkach przy tym jest jak walka z wiatrakami :slight_smile:

niech będzie…

…drzwiami redakcji WP, powstał pomysł…

Może domker rozgryzł API i zrobi ci skrypt do konsoli przeglądarki „pobierz temat”.

Niby pojedyncze wpisy mają tryb surowy np.:

https://forum.dobreprogramy.pl/raw/648695/
https://forum.dobreprogramy.pl/raw/648695/2
https://forum.dobreprogramy.pl/raw/648695/3

(raw traci info o nicku i dacie i raczej skryptem musiałbyś polecieć na 10000+ postów i najlepiej co jakiś czas zmieniać IP by cię WP nie odcięło na „dobę”)

…zwariowany pomysł, ale zawsze pomysł…

Niby jest takie coś ale powiewa starością:

bo lepiej mieć pomysł, niż

ps.
@krystian3w nie łam zasad… 5 słów :wink:

Miałeś sobie wyciąć moje emoji w uBlock Origin, odszukaj stary kod w archiwum forum lub poducz się jak używać:

:has-text() / :contains()

Procedural cosmetic filters · gorhill/uBlock Wiki · GitHub (#subjecthas-textneedle)

How to create your own ad filters | AdGuard Knowledgebase (#extended-css-contains)

Trudniej jak ktoś też kliknie w moją reakcje, wtedy w regex musisz wykluczyć „and”.

Podsumowanie

##button.post-retort:has( > span:has-text(/^krystian3w/))
lub pod nowsze uBO/AdGuard
##button.post-retort > span:has-text(/^krystian3w/):upward(1)

Oj, chyba by mnie admin DP/WP za…ał jakbym zrobił 12642 zapytania do serwera, aby zeskrobać jakieś pojedyncze posty z tak dużego tematu.

Można zrobić 632 zapytania GET, co i tak jest dużą liczbą, ale z drugiej strony forum tak samo się zachowuje, czyli pobiera po 20 wpisów w plikach JSON, przy przewijaniu tematów.

W trybie RAW tego niestety nie zrobisz, ale można sobie dane „ugotować” :wink: do pliku tekstowego.
W tym celu wystarczy jakiś Linux, pakiet curl, jq do przefiltrowania drzewa JSON.
Oczywiście sed'em trzeba usunąć jeszcze wszystkie tagi z tekstu, ale to nie problem.

Skrypt w celach edukacyjnych - nie skrobać za dużo! :rofl: :joy:

#!/bin/bash

for (( i=0; $i <= 12640; i+=20 )) ; do

jdata=$(curl -s -k -A "Mozilla/5.0 (Windows NT 666.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/666.0.4052.120 Safari/537.36" --header "Content-Type: application/json" https://forum.dobreprogramy.pl/t/35835/$i.json)

echo $jdata | jq -r '.post_stream.posts[].cooked' | sed 's/<[^>]*>//g ; /^$/d' >> raw_data.txt

echo "Licznik: $i"

sleep 1

done

Zeskrobanie danych z tak dużego tematu zajmie około 11 min.
Jednosekundowe opóźnienie jest ustawione tylko po to, aby nie przeginać z częstotliwością requestów, aka. DDoS :stuck_out_tongue:

Jak ktoś zrobił cytat to niestety też tam to będzie.

W sumie ciekawe jak zablokują chromium 666 i za około 47-57 lat forum przestanie się ładować (mogłem się pomylić w cyklu wydań / „wydaleń” Chrome).

Chciałem połączyć się przez R z jsonlite, ale na forum jest źle zaimplementowany certyfikat ssl i nie daje rady ustawić połączenia w R, wywala błąd :confused:
https://www.sslshopper.com/ssl-checker.html#hostname=forum.dobreprogramy.pl

potem wystarczyłoby coś w stylu

nowy<-as.list(NULL)
for(zmienna in seq(0, 12640, 20)){
Sys.sleep(1)
test<- fromJSON(paste0("https://forum.dobreprogramy.pl/t/35835/",zmienna,".json"),flatten = TRUE)
nowy<-append(nowy,as.list(test$post_stream$posts$cooked))
}

Ja bym pewnie jako dos traktował coś powyżej 10 zapytań na sekunde ale jak nikt nic nie piszę to zwykle jedna sekunda jest bezpieczna :slight_smile:

Efekt końcowy :smiley: