W szczególności chciałbym móc pobierać określone strony z mojego profilu użytkownika na różnych stronach Stack Exchange. Chciałbym jednak to zrobić automatycznie (przy użyciu cron
zadania), z wiersza polecenia i w formacie możliwym do przetworzenia. Wolę używać do tego Linuksa, ale w razie potrzeby mogę uzyskać dostęp do komputera Mac lub Windows.
Idealnie chciałbym użyć narzędzia takiego jak Wget lub cURL, aby pobrać strony. Nie wiem jednak, jak przejść obok logowania. Widziałem sugestie, które wspominają, że możesz zalogować się przez Firefox, wyeksportować odpowiedni plik cookie i zaimportować go do Wget za pomocą jego --load-cookies
opcji. Na przykład tutaj i tutaj . Chociaż działa to, jeśli właśnie się zalogowałem, po pewnym czasie nie działa. Chyba dlatego, że token ID musi zostać odświeżony.
Tak więc zaraz po zalogowaniu się do SU i wyeksportowaniu plików cookie mogę:
wget --load-cookies cookies.txt \
https://superuser.com/users/151431/terdon?tab=responses
Po kilku minutach pojawia się błąd 404:
wget -O ~/stack/$(date +%s) --load-cookies ~/cookies.txt \
https://superuser.com/users/151431/terdon?tab=responses
--2013-08-06 04:04:14-- https://superuser.com/users/151431/terdon?tab=responses
Resolving superuser.com (superuser.com)... 198.252.206.16
Connecting to superuser.com (superuser.com)|198.252.206.16|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-08-06 04:04:15 ERROR 404: Not Found.
Jak więc mogę automatycznie zalogować się do strony internetowej obsługującej OpenID z wiersza poleceń?
PS. Myślę, że jest to bardziej odpowiednie tutaj niż w aplikacjach internetowych, ponieważ moje pytanie naprawdę dotyczy aspektu wiersza poleceń, a nie faktycznych szczegółów danej strony internetowej. Domyślam się, że każde rozwiązanie będzie miało zastosowanie do wszystkich witryn OpenID .
Odpowiedzi:
Nie możesz, ponieważ pliki cookie odświeżają się tak często. Jest to ze względów bezpieczeństwa, jedynym sposobem, aby to zrobić, jest to, co już zrobiłeś. przynajmniej z mojego zrozumienia.
źródło
(Re-) Przeczytaj stronę podręcznika użytkownika
wget
i spójrz na opisy flag--user
i--password
.Pamiętaj, że przekazanie hasła jako argumentu wiersza poleceń nie jest zalecane, ponieważ każdy, kto go uruchomił,
ps
może go zobaczyć. Najlepszą praktyką jest, aby nigdzie nie zapisywać surowych haseł, ale następną najlepszą jest umieszczenie go w pliku, który może odczytać tylko właściciel.źródło