Pobierz wszystkie linki PDF ze strony internetowej? [Zamknięte]


Odpowiedzi:


36

Możesz użyć wget i uruchomić następującą komendę:

wget --recursive --level=1 --no-directories --no-host-directories --accept pdf http://example.com

Lub z krótkimi opcjami:

wget -r -l 1 -nd -nH -A pdf http://example.com

AKTUALIZACJA: Ponieważ aktualizacja mówi, że korzystasz z systemu Windows 7: użyj wget dla systemu Windows z cmdmonitu.

AKTUALIZACJA 2: Dla rozwiązania graficznego - choć może to być przesada, ponieważ dostaje także inne pliki, jest DownThemAll


dziękuję Kevin za radę, wget wygląda dobrze, w każdym razie wolałbym oprogramowanie „graficzne” bez wiersza poleceń. :)
iAsk

2
To odrzuca nawet początkową stronę .html. Czy kiedykolwiek był testowany?
dan3

Pytanie dotyczy pobrania wszystkich linków PDF, więc tak, początkowa strona .html zostanie zignorowana.
Kevin Worthington

Czy w Windows 7 można zrobić to samo za pomocą Power Shell?
Benedikt Buchert

1
Sugerowałbym również rzucenie co najmniej kilku sekund opóźnienia między pobraniem plików, aby było przyjemne i nie przytłaczało zdalnego serwera. e, g, dla wget, dodaj flagę-w 5
KJH 21.01.16

6
  1. W przeglądarce naciśnij CTRL+ SHIFT+ Ji wprowadź

    var pdflinks = []; Array.prototype.map. call (document.querySelectorAll („a [href $ = \". pdf \ "]"), funkcja (e, i) {if ((pdflinks || []). indexOf (e.href) == - 1) {pdflinks.push (e.href);}}); console.log (pdflinks.join („”));

    Zwróci to w konsoli:

    /superuser/tagged/somepdf1.pdf ” „ /superuser/tagged/somepdf2.pdf ” „ /superuser/tagged/somepdf3.pdf

  2. Teraz używa wgetz opcjami wiersza poleceńwget url1 url2 ...

Skopiuj i wklej to, otwórz konsolę, wgetnaciśnij prawy przycisk myszy, aby wstawić zawartość schowka i naciśnij enter.

Aby użyć pliku do pobrania, połącz linie za pomocą „\ n” i użyj parametru w następujący sposób wget -i mydownload.txt

Zauważ, że większość innych programów do pobierania (GUI) również akceptuje, aby były wywoływane z listą adresów URL oddzielonych spacjami.

Mam nadzieję że to pomoże. Tak zazwyczaj to robię. Jest szybszy i bardziej elastyczny niż jakiekolwiek rozszerzenie z graficznym interfejsem użytkownika, którego muszę się nauczyć i pozostać zaznajomiony.


1
Jeszcze lepiej, console.log('"' + pdflinks.join('" "') + '"')bo inaczej nie dostaniesz cytowanych adresów URL
dan3

1

Jeśli chcesz pozostać w przeglądarce, napisałem rozszerzenie internetowe właśnie w tym celu - pracuję nad dodaniem możliwości zapisywania plików PDF artykułów naukowych z odpowiednio sformatowanymi tytułami, ale jeśli chcesz je pobrać wszystko jest idealne dla tego.

To się nazywa Tab Save i tutaj w sklepie internetowym Chrome . Nie musisz nawet wpisywać listy adresów URL, jeśli po prostu otworzysz je wszystkie na kartach (ale w przypadku dużej liczby plików może to spowolnić komputer, więc dodałem opcję dodania własnego).


0

Ostatnio użyłem do tego uGet (w systemie Windows). Ma GUI i możesz filtrować pliki, które zamierzasz pobrać.

Oszczędza próbując zapamiętać to wszystko


0

W przeglądarce Google Chrome można używać rozszerzeń takich jak:

  • Pobierz Master

    Dzięki temu rozszerzeniu możesz pobierać wszystkie obrazy, filmy, pdf, doc i wszelkie inne pliki połączone z odwiedzaną stroną internetową.


0

Google

Istnieje kilka narzędzi Python, które umożliwiają pobieranie linków PDF ze strony internetowej w oparciu o wyniki wyszukiwania Google.

Na przykład

  • google_dlskrypt (zalecany).

    Stosowanie:

    ./google_dl -s http://www.example.com/ -f pdf ""
    
  • gsrchDwnskrypt (oparty na skrypcie neo ).

    Stosowanie:

    ./gsrchDwn.py --query "site:http://www.example.com/" --ftype pdf
    

Uwaga: jestem opiekunem obu wymienionych skryptów.

Obie implementują xgooglebibliotekę Python. Moje rozwidlenie tej biblioteki jest oparte na pkrumins/xgooglewersji .


Powiązane: Wyszukiwanie w sieci z wiersza poleceń systemu Linux .

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.