To pytanie zawiera już odpowiedź:
Jak wyodrębnić wszystkie zewnętrzne linki strony internetowej i zapisać je w pliku?
Jeśli są jakieś narzędzia wiersza poleceń, które byłyby świetne.
To było to samo pytanie tutaj , a odpowiedź sprawnie działała dla google.com, ale z jakiegoś powodu nie działa z np. youtube. Wyjaśnię: weźmy na przykład ta strona . Jeśli spróbuję uciekać
lynx -dump http://www.youtube.com/playlist?list=PLAA9A2EFA0E3A2039&feature=plcp | awk '/http/{print $2}' | grep watch > links.txt
następnie, w przeciwieństwie do używania go na google.com najpierw wykonuje zrzut Lynx, a następnie daje kontrolę do awk (z jakiegoś powodu z pustym wejściem), a na koniec nic nie zapisuje w pliku links.txt. Dopiero po tym wyświetli się niefiltrowany zrzut rysia, bez możliwości przeniesienia go gdzie indziej.
Z góry dziękuję!
linux
command-line
download
whoever
źródło
źródło
Odpowiedzi:
Prace. Musisz uciec
&
w linku.W twojej pierwotnej linii nie ma zmiany
&
rzuci Lynxa w tło, pozostawiając puste wejście dlalinks.txt
. Proces w tle nadal będzie zapisywał dane wyjściowe do terminalu, w którym się znajdujesz, ale jak zauważyłeś, nie zrobi tego>
przekierowanie (niejednoznaczność: który proces powinien zapisywać do pliku?).Uzupełnienie: Zakładam literówkę w twoim pierwotnym rozkazie: początek i koniec
'
nie powinno być obecne. W przeciwnym razie pojawią się inne komunikaty o błędach, które próbują wykonać nieistniejące polecenie. Ich usunięcie daje zachowanie, które opisujesz.źródło
Użyj swojej ulubionej strony i wyszukaj "skrypt skrobaczki internetowej" lub "skrypt skrobania strony" i jakikolwiek język programowania, który najbardziej Ci odpowiada. Masz tysiące opcji, więc możesz wykonać najdokładniejsze wyszukiwanie.
źródło
Chociaż istnieje wiele opcji do wyboru, polecam używanie Pythona z BeautifilSoup - to da ci całkowitą kontrolę nad procesem, w tym następujące przekierowania, obsługę certyfikatów SSL z podpisem własnym / wygasłym, pracę nad nieprawidłowym kodem HTML, wyodrębnianie linków tylko z określone bloki strony itp.
Dla przykładu sprawdź ten wątek: https://stackoverflow.com/questions/1080411/retrieve-links-from-web-page-using-python-and-beautiful-soup
Instalacja BeautifulSoup jest tak banalna jak uruchomienie
pip install BeautifilSoup
lubeasy_install BeautifilSoup
jeśli jesteś na Linuksie. Na Win32 jest prawdopodobnie najłatwiejszy w użyciu instalatory binarne .źródło