Zmusza wget do używania rzeczywistej nazwy pliku


50

Podczas korzystania wgetze skryptu do pobierania niektórych plików z Dokumentów Google nazwa pliku nie jest zachowywana. Na przykład:

wget 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls' 

zapisuje plik jako pub?key=pyj6tScZqmEfbZyl0qjbiRQzamiast indicatorhivestimatedprevalence15-49.xls, co otrzymuję, jeśli kliknę link w przeglądarce. Czy jest jakiś sposób na wymuszenie tego „podobnego do przeglądarki” zachowania wget?

Odpowiedzi:


90
wget --content-disposition 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls'

zrobi dla ciebie lewę.

Nadal nie jest w pełni zaimplementowany i wydaje się czasem wyrządzać błędy, więc nie jest domyślną opcją w wget, użyj go na własne ryzyko.


1
Wiem...! Fajnie co? ;)
Bruno Pereira,

Nie jestem zbytnio programistą, więc nigdy nie pomyślałbym o szukaniu frazy „usposobienie treści”. Zaoszczędziłeś mi konieczności ręcznego przeglądania nagłówków HTTP, odkrywania nagłówka dysponowania treścią i radzenia sobie z nim.
Chinmay Kanchi,

WOW + niesamowite. THX u roc dobry pomysł.
Kangarooo

@BrunoPereira, próbuję również pobrać plik arkusza kalkulacyjnego Google. Ale nie mogłem znaleźć linku do pliku. Czy możesz powiedzieć, jak uzyskać link do pliku arkusza kalkulacyjnego Google, abym mógł używać wget w taki sam sposób, jak Chinmay Kanchi. Z góry dziękuję.
user22180,

@ChinmayKanchi Nazywam siebie programistą internetowym od 15 lat, ale jeśli chodzi o to, zawsze staram się używać bardziej znaczącej nazwy w kodzie.
tishma,


0

Link do Dokumentów Google naprawdę nakazuje skryptowi uruchomienie na serwerze, który analizuje go w żądanym pliku. Plik, zgodnie z moją najlepszą wiedzą, nie istnieje nigdy na serwerze w formie els, ale jest generowany w czasie wykonywania, gdy go o to poprosisz. Dlatego nie ma nic do zdobycia przez wget.

Aby pobrać plik, musisz użyć interfejsu API Google http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/ .


Tak, serwer prosi o uruchomienie skryptu, który tworzy .xlsplik w locie. Jednak pełna wersja przeglądarki nie ma z tym problemu. Więc oczywiście można obejść się bez interfejsu API Dokumentów.
Chinmay Kanchi,

Myślałem, że skrypt uruchamiany w przeglądarce użyje interfejsu API, więc aby to zrobić bez przeglądarki, trzeba będzie odtworzyć skrypt. Ciekawe, że ten wget ma na to flagę.
Ethan
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.