Как использовать wget / curl для загрузки с сайта, на котором я вошел?

Некоторые части википедии выглядят по-разному, когда вы вошли в систему. Я хотел бы видеть пользовательские страницы, чтобы они выглядели так, как будто я вошел в систему.

Есть ли способ, которым я могу видеть пользовательские страницы, как это

http://en.wikipedia.org/wiki/User:A

это страница входа в систему:

http://en.wikipedia.org/w/index.php?title=Special:UserLogin&returnto=Login&campaign=ACP3
46
задан 18 May 2014 в 23:14

9 ответов

Простой способ: войдите в систему со своим браузером и дайте cookie wget

Самый легкий метод: в целом необходимо обеспечить wget или завихрение с (зарегистрированными) cookie с конкретного веб-сайта для них для выборки страниц, как будто Вы были зарегистрированы.

При использовании Firefox легко сделать через дополнение Cookie Экспорта. Установите дополнение, и:

  1. Перейдите к Инструментам... Cookie экспорта, и сохраняют cookies.txt файл (можно изменить имя файла/место назначения).
  2. Откройте терминал и использование wget с --load-cookies=FILENAME опция, например.

    wget --load-cookies=cookies.txt http://en.wikipedia.org/wiki/User:A
    
    • Для завихрения это curl --cookie cookies.txt ...

(Я попытаюсь обновить этот ответ для пользователей Chrome/хрома),

Твердый путь: используйте завихрение (предпочтительно) или wget для управления всей сессией

  • Подробное практическое руководство выходит за рамки этого ответа, но Вы используете завихрение с --cookie-jar или wget с --save-cookies --keep-session-cookiesопции, наряду с HTTP/S ПОМЕЩАЮТ метод, чтобы войти в систему сайта, сохранить cookie входа в систему и затем использовать их для моделирования браузера.
  • Само собой разумеется, это требует прохождения через источника HTML для страницы входа в систему (получите имена поля ввода, и т.д.), и является часто трудным взяться за работу для сайтов с помощью чего-либо вне простого входа в систему/аутентификации по паролю.
  • Подсказка: если Вы идете этим путем, часто намного более просто иметь дело с мобильной версией веб-сайта (при наличии), по крайней мере, для шага аутентификации.
52
ответ дан 18 May 2014 в 23:14

В блоге Wget с файлами cookie Firefox показано, как получить доступ к файлу данных sqlite, в котором Firefox хранит свои файлы cookie. Таким образом, не нужно вручную экспортировать куки для использования с wget. Комментарий предполагает, что он не работает с сессионными куки, но он отлично работал на сайтах, с которыми я его пробовал.

0
ответ дан 18 May 2014 в 23:14

Вы пробовали это?

wget --user=username --password=password http://en.wikipedia.org/wiki/User:A
0
ответ дан 18 May 2014 в 23:14

Для тех, кто все еще интересуется этими вопросами, есть очень полезное расширение Chrome под названием CurlWGet , которое позволяет генерировать запрос wget / curl с мерами аутентификации и т. Д. Одним щелчком мыши. Чтобы установить это расширение, выполните следующие действия:

  1. Установите расширение из Chrome Webstore .
  2. Перейдите на веб-страницу, которую вы хотите загрузить.
  3. Начните загрузку.
  4. Расширение создаст для вас ссылку.

Наслаждайтесь!

0
ответ дан 18 May 2014 в 23:14

Еще одно простое решение, которое сработало для меня, не устанавливая ничего лишнего:

  • Откройте вкладку «Сеть» в Инструмент «Веб-разработчик» : Ctrl-Shift-E
  • Посетите страницу, которую хотите сохранить (например, фотографию за логином)
  • Щелкните правой кнопкой мыши запрос и выберите «Копировать» -> «Копировать как cURL»
  • [ 119]

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

    curl 'https://mysite.test/my-secure-dir/picture1.jpg' \ 
    -H 'User-Agent: Mozilla/5.0 ...' \
    -H 'Cookie: SESSIONID=abcdef1234567890'
    

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

0
ответ дан 18 May 2014 в 23:14

С ЗАВИХРЕНИЕМ действительно легко обработать cookie обоими способами.

curl www.target-url.com -c cookie.txt затем сохранит файл под названием cookie.txt. Но необходимо войти в систему, так должен использовать - данные с аргументами как: curl -X --data "var1=1&var2=2" www.target-url.com/login.php -c cookie.txt. После того как Вы получаете loggued cookie, можно отправить его с: curl www.target-url.com/?user-page.php -b cookie.txt

Просто используйте-c (-cookie) или-b (-банка cookie), чтобы сохранить и отправить.

Note1: Используя ВИХРЕВОЙ CLI много более легких, чем PHP и возможно быстрее ;)

Для сохранения заключительное содержание можно легко добавить > filename.html к Вашей ВИХРЕВОЙ команде затем сохраняют полный HTML-код.

Note2 о "полном": Эй не может представить JavaScript с ЗАВИХРЕНИЕМ, просто получить исходный код.

4
ответ дан 18 May 2014 в 23:14

Попробуйте что-то вроде:

wget --keep-session-cookies --save-cookies cookies.txt --post-data 'user=goyamy&passwrd=mypassword' http://forum.ubuntu-it.org/

См. Также ссылку:

Как загрузить эту веб-страницу с помощью wget?

0
ответ дан 18 May 2014 в 23:14

Для более сложных входов в систему на основе веб-сайта вы также должны рассмотреть возможность использования скрипта Python и некоторого модуля, имитирующего браузер, например http://wwwsearch.sourceforge.net/mechanize/ вместо curl. или wget.

Таким образом, сеансовые куки-файлы обрабатываются автоматически, вы можете переходить по ссылкам и заполнять формы входа в систему, и, таким образом, «сценарием» себя через процесс входа в систему, как если бы вы использовали веб-браузер.

0
ответ дан 18 May 2014 в 23:14

взгляните на cliget для Firefox.

Когда вы собираетесь загружать, в последнем диалоговом окне загрузки вы получаете возможность скопировать загрузку в виде командной строки curl в буфер обмена.

0
ответ дан 18 May 2014 в 23:14

Другие вопросы по тегам:

Похожие вопросы: