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

Это невозможно прямо в Do, но у него есть возможность узнать, что вы имеете в виду. Действие по умолчанию для любого элемента - это всегда действие, которое вы использовали чаще всего из возможных действий для этого элемента.

Итак, одним из способов получить то, что вы хотите, было бы просто использовать run

Другим способом было бы сообщить, что ваш скрипт является «приложением», которое запускается, например, Firefox или Evolution или тому подобное. Определяет список приложений путем поиска файлов .desktop в стандартных местах. Одним из таких мест является ~/.local/share/applications. Итак, если вы создаете файл foo.desktop, выглядящий примерно так:

[Desktop Entry]
Version=1.0
Name=Foo desktop frobinator
GenericName=Desktop frobinator
Comment=Awesomeate your desktop!
Exec=/home/raof/.scripts/foo.sh
Icon=shotwell
Terminal=true
Type=Application
Categories=Graphics;Photography;GNOME;GTK;

, вы получите «Foo desktop frobinator» runnable item в Do.

1
задан 19 May 2014 в 00:14

7 ответов

С помощью cURL очень легко обрабатывать файлы cookie в обоих направлениях.

curl www.target-url.com -c cookie.txt затем сохранит файл с именем cookie.txt. Но вам нужно войти в систему, поэтому вам нужно использовать -data с такими аргументами, как: 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-jar) для сохранения и отправки.

Примечание1: Использование cURL CLI намного проще, чем PHP, и, возможно, быстрее;)

Для сохранения окончательного содержимого вы можете легко добавить > filename.html в свою команду cURL, а затем сохранить полный html-код.

Note2 о «full»: Yo не может отображать javascript с помощью cURL, просто получите исходный код.

3
ответ дан 25 May 2018 в 08:49
  • 1
    Параметр -X означает «делать сообщения», но использование --data=xxx -X неявно, поэтому вы можете удалить его наверняка. – erm3nda 19 May 2014 в 00:17
  • 2
    -b - read cookie – Timo 14 March 2018 в 18:32

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

2
ответ дан 25 May 2018 в 08:49

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

wget --user=username --password=password http://en.wikipedia.org/wiki/User:A
1
ответ дан 25 May 2018 в 08:49
  • 1
    да - к сожалению, это не сработало = ( – user784637 10 July 2012 в 04:53
  • 2
    Примечание. Этот синтаксис работает только для базовой HTTP-аутентификации (где в вашем браузере появляется специальное диалоговое окно Username / Password), а не для проверки подлинности на веб-странице. – ish 10 July 2012 в 08:30
  • 3
    основной URL-адрес URL-адреса аутентификации HTTP - admin: admin@www.url.com, но, как говорит @izx, базовый HTTP-браузер - это функция браузера, а не PHP-программирование и код. Если когда-нибудь вам понадобится доступ к защищенному htaccess url, вы можете использовать этот режим; D – erm3nda 19 May 2014 в 00:12
  • 4
    Я не спускал вниз, но это не очень хороший способ аутентификации: если вы случайно сделаете такие сценарии общедоступными, люди могут использовать ваш пароль. – Willem Van Onsem 23 November 2014 в 18:51
  • 5
    Что с downvotes? Может быть, не все поймать, но все-таки ответ. – Overcode 6 August 2015 в 20:49

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

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

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

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

1
ответ дан 25 May 2018 в 08:49
  • 1
    Как и любой выход. Используйте > filename.html, чтобы сохранить вывод в текущем каталоге или поместить полный путь к файлу. Это касается как систем Linux, так и Windows. – erm3nda 19 May 2014 в 00:14
  • 2
    Итак, я вижу, что wget имеет много функций, таких как cURL или наоборот. Он может делать POST, поэтому он может подключаться к веб-сайтам. Интересно. – erm3nda 19 May 2014 в 00:16

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

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

1
ответ дан 25 May 2018 в 08:49
  • 1
    Да, использование механизации может быть очень приятным. Также (и изначально) доступно на Perl, если это больше ваша чашка чая. – andol 3 April 2013 в 13:52

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

Установите расширение из веб-магазина Chrome. Перейдите на веб-страницу, которую вы хотите загрузить. Запустите загрузку. Расширение создаст для вас ссылку.

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

1
ответ дан 25 May 2018 в 08:49

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

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

1
ответ дан 25 May 2018 в 08:49

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

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