Czy dałoby radę złączyć historie z wątku
w jedną całość? bo przewijanie po wątkach przy tym jest jak walka z wiatrakami
Czy dałoby radę złączyć historie z wątku
w jedną całość? bo przewijanie po wątkach przy tym jest jak walka z wiatrakami
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ą:
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”.
##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ć” 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!
#!/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
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
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
Efekt końcowy