Я хочу загрузить все * .pdf файлы с веб-сайта. (https://www.parlament.gv.at/PAKT/PLENAR/)

Но когда я открываю URL, отображаются только первые 50 документов (а также загружаются с помощью WGET). Поэтому я изменил URL в своей команде, включая параметры поиска, что прекрасно работает, когда я открываю его в браузере (он показывает все 145) но это не работает в моей команде.

Можете ли вы дать мне подсказку или помочь мне, пожалуйста?

wget --recursive --level=1 --no-directories --no-host-directories --no-check-certificate --accept pdf https://www.parlament.gv.at/PAKT/PLENAR/index.shtml?SUCH=&xdocumentUri=%2FPAKT%2FPLENAR%2Findex.shtml&pageNumber=&GP=XXV&STEP=&FBEZ=FP_007&NRBRBV=NR&R_SISTEI=SI&requestId=76AAFD95E4&LISTE=&jsMode=&STATT=ALLE&listeId=1070&EING=ALLE

Нечто подобное (или более сложное) я хотел бы достичь с помощью URL https://www.parlament.gv.at/SERV/STAT/IND/

Во втором случае мне даже нужно сначала сделать выбор, который я понятия не имею, чтобы решить.

Спасибо заранее за вашу помощь.

1 ответ1

1

В Windows wget.exe (GNU Wget 1.10.2) он действительно работает неправильно (без цитирования URL-адреса возникают ошибки для части URL-адреса после первого символа & , а двойные кавычки вокруг URL-адреса - ? каким-то образом переводится в @ помощью wget.exe, аннулируя URL). OTOH, в Debian Jessie (GNU Wget 1.16) он работает просто отлично (с двойными кавычками вокруг URL) - но я предполагаю, что вы работаете в Windows или используете более старый wget .

"Другой" ответ на вопрос SO, связанный с помощью w32sh (в комментариях), кажется, работает, просто поместите URL-адрес в текстовый файл (без кавычек) и замените URL-адрес в вашей команде на -i URL.txt .

Что касается второго полученного вами случая, вам нужно создать URL для HTTP GET-запроса с параметрами, которые вам необходимы.

  1. Если вы посмотрите на исходный HTML-код страницы (используя "Просмотр исходного кода страницы" или встроенный инспектор страниц в браузере), вы должны найти тег form который говорит:

    <form id = "filterFormFP_023" action = "/SERV/STAT/IND/index.shtml" method = "get" [...]>

    Итак, первая часть вашего URL должна быть https://www.parlament.gv.at/SERV/STAT/IND/index.shtml (в основном добавление параметра action к имени хоста).

  2. В форме, заметить fieldset , содержащее поле ввода. Раскрытие "Zeitraum":

    <select id = "FP_023_GP" [...] name = "GP">

    Радиокнопки "Teile" / "Personen":

    <input id = "FP_023_R_TP_1" type = "radio" [...] value = "T" checked = "" name = "R_TP"> <input id = "FP_023_R_TP_2" type = "radio" [...] значение = "P" name = "R_TP">

    Дальнейшие выпадающие списки:

    <select id = "FP_023_T" [...] name = "T">

    <select id = "FP_023_PADT" [...] name = "PADT">

    и так далее.

  3. Из этих полей вам нужно взять name и значение, к которому вы хотите обратиться, и добавить их в URL, чтобы он стал https://www.parlament.gv.at/SERV/STAT/IND/index.shtml?name1=value1&name2?value2&name3=value3&name4=value4 (и т. д.). Заметьте ? перед списком параметров и & между каждой парой имя-значение параметра. Для раскрывающихся списков (select теги) используйте все, что указано в атрибуте option тега value в качестве значения. Например. https://www.parlament.gv.at/SERV/STAT/IND/index.shtml?GP=XXIV&R_TP=T&T=B&PADT=178 .

  4. Наконец, проверьте URL-адрес в браузере, и, если он работает так, как если бы вы сделали запрос в браузере, поместите URL-адрес в текстовый файл и используйте описанный выше метод с помощью wget .

Также обратите внимание, что если некоторые значения параметров содержат пробелы или символы , отличные от ASCII , вам, вероятно, потребуется использовать для них правильную кодировку .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .