Dlaczego ta strona internetowa nie daje takiej samej odpowiedzi w wget jak w Firefoksie?


0

Chcę pobrać instancje tej strony za pomocą skryptu, który wstrzykuje zmiany parametrów do HTTP POST.

Korzystając z rozszerzenia Firefox Sabotaż danych, przechwyciłem przykładowe żądanie. Oto nieprzetworzone nagłówki (pominięto kodowanie zawartości i gzip Accept)

Host: www.fourmilab.ch
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
DNT: 1
Referer: http://www.fourmilab.ch/cgi-bin/Yoursky
Connection: keep-alive

Podobnie są to nieprzetworzone dane postu

date=1&utc=2010-02-24+0%3A00%3A00&jd=2455251.50000&lat=47%B0&ns=North&lon=7%B0&ew=East&coords=on&moonp=on&deep=on&deepm=2.5&consto=on&constn=on&limag=5.5&starnm=2.0&starbm=2.5&imgsize=1200&fontscale=0.7&scheme=0&elements=

Użyłem ich do skonstruowania polecenia wget, które, o ile rozumiem, powinno zwrócić tę samą stronę internetową, którą zobaczy przeglądarka.

wget --header="Host: www.fourmilab.ch" --header="User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0" --header="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" --header="Accept-Language: en-US,en;q=0.5" --header="DNT: 1" --header="Referer: http://www.fourmilab.ch/cgi-bin/Yoursky" --header="Connection: keep-alive" -data "date=1&utc=2010-02-24+0%3A00%3A00&jd=2455251.50000&lat=47%B0&ns=North&lon=7%B0&ew=East&coords=on&moonp=on&deep=on&deepm=2.5&consto=on&constn=on&limag=5.5&starnm=2.0&starbm=2.5&imgsize=1200&fontscale=0.7&scheme=0&elements=" -o /dev/null -O - http://www.fourmilab.ch/cgi-bin/Yoursky > /tmp/sky.html

Serwer nie odpowiada zgodnie z oczekiwaniami.

Rezultatem w przeglądarce jest to, że pola formularza strony internetowej zostaną wstępnie wypełnione tymi samymi wartościami, jakie były w pierwotnym żądaniu, więc jeśli ponownie naciśniesz przycisk Aktualizuj, będziesz cyklować ten sam wynik.

Kiedy uruchamiam wersję wget, zwraca domyślną początkową stronę internetową, tak jakbyśmy robili GET i nie wymagali żadnych konkretnych parametrów.

Czy używam wget niepoprawnie? A może niekompletnie? Dlaczego nie uzyskuje tego samego wyniku co przeglądarka?


wget nie ma opcji wiersza polecenia
-data

Ach, dzięki. Kopiowałem z przykładu z różnymi opcjami polecenia. Nie. Czy chcesz udzielić odpowiedzi, którą mogę zaakceptować?
spraff

Może lepiej jest usunąć pytanie, ponieważ jest zbyt szczegółowe
golimar

1
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ popełniłem głupi błąd.
spraff
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.