LINUX.ORG.RU

wget парсинг почты yandex


0

1

Здравствуйте. Честно говоря я дуб дубом в linux те не профессионал те дилетант) Поэтому прошу помощи. Вот мой скрипт

login=мой логин
pass=мой пароль

wget -q --no-check-certificate --keep-session-cookies --save-cookies ya_cookies.txt --load-cookies ya_cookies.txt "https://passport.yandex.ru/passport?mode=auth" --referer="https://mail.yandex.ru/" --post-data="login=$login&passwd=$pass" -O /dev/null; 

wget -q --no-check-certificate --keep-session-cookies --save-cookies ya_cookies.txt --load-cookies ya_cookies.txt "https://mail.yandex.ru/" -O index.html

чего я хотел добиться? получить страницу со своими сообщениями. Вместо этого получаю страничку с ошибкой. Мне далее необходимо скачать большое вложение на сервер. очень прошу помочь с написанием скрипта. Или направить куда надо чтобы прочитать как работают эти запросы html чтобы можно было скачать вложение (там как то на кнопку надо нажать не знаю как). Но лучше помочь с написанием скрипта. Спасибо


Эм, есть протоколы доступа к почте, тот же imap. Устновить какой-нибудь offlineimap и синронизировать.

anonymous
()
Ответ на: комментарий от anonymous

тышто савок штоле?

Вебинтерфейсы во все поля!

Автору-запили javascript костыль который и будет делать нужное,да у джаваскрипта есть права на запись на диск.Проще и быстрее-во времена глобальной идиотии ВЕБДЖВАНОЛЬ

anonymous
()

login pass это только для ftp вроде

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от ddank1

Спасибо. Но хотелось бы разобраться уже с wget так как я спать спокойно не смогу уже)

ЛОгин в яндексе происходит джаваскриптом.

Ты запрашивая mail.ya.ru получаешь джаваскрипт с токеном,этот токен шифрует твой логин пароль и отправляет яндексу.

Так вот wget не обрабатывает жаваскрипт,а просто шлет логин пароль в открытом виде не сложив с токеном.

Также на яндексе навешан миллин костылей для детекта браузера и джаваскрипта:
1.Если ты зашел без джаваскрипта происходит редирект на error NO JS(как-редирект через 1 секунду без джаваскрипта-если есть джаваскрипт,он посылает команду «отбой» серверу яндекса-и редеректа не будет)
2.яндекс не пустит тебя через старый или неподдерживаемый браузер..

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

И да-автор ты делаешь клон яндекс джаваскрипта на shell-скрипте(или придется делать в конце концов)-это таки страшнее чем просто накостылять user-js.js

anonymous
()
Ответ на: комментарий от ddank1

Эм, есть протоколы доступа к почте, тот же imap.

Спасибо. Но хотелось бы разобраться уже с wget

 — Как мне правильно удалять гланды автогеном через жопу?
 — Но это же можно сделать проще, например через рот?
 — Спасибо, но уже хочется разобраться...

sin_a ★★★★★
()
Ответ на: комментарий от ddank1

те мне забить на линукс пока не

А как ты это все делал в винде или под wine-ом гипотетическая приблуда не заводится?

anonymous
()
Ответ на: комментарий от ddank1

Установи какой-нибудь uzbl и сношай шелл с пользовательской стороной яндекса сколько влезет.

anonymous
()

Если хочешь сделать это именно так как ты хочешь это сделать - юзай qtwebkit из какого-нибудь питона. Там и кнопочки яваскриптом можно тыкать, и всё что хочешь можно делать.

NeverLoved ★★★★★
()
Ответ на: комментарий от anonymous

я сервером управляю через ssh не могу uzbl поставить. Можете тогда сказать как хоть через mutt скачать вложение из папки отправленные?

ddank1
() автор топика
Ответ на: комментарий от ddank1

тут просто одну кнопочку нажать подскажите как

ddank1
() автор топика
Ответ на: комментарий от ddank1

там просто тоже не все просто файл большой и хранится на yandex disk

А не проще установить аддон к браузеру, который вызовет внешний загрузчик с нужными параметрами? Емнип, flashgot умел.

anonymous
()

Автор, что за идиотизм так упорно использовать веб там где можно использовать нормальный протокол? Попробуй например перлятиной тащить почту используя Mail::IMAPClient, там 3 строчки написать надо.

anonymous
()
Ответ на: комментарий от ddank1

файл большой и хранится на yandex disk вот ссылка но по Ней не качает wget http://yadi.sk/d/sWFcXZjF3q2PK

Т.е. он в чужом диске и есть только линк на скачивание?

А не проще владельцу файла пошарить папку с вашим диском? Это самый здравый вариант.

Потому что с личного диска забрать файл - это один GET-запрос с basic-авторизацией.

Публично расшаренное нельзя скачивать напрямую, да. И в последнее время всякими способами умеют защищаться от продвинутых ботов с htmlunit/selenium/etc, поэтому вполне возможно, что придется еще и голову поломать.

zhuravlik ★★★★
()
Ответ на: комментарий от sin_a

Диск можно смонтировать, если установлен davfs.

Свой диск. Да там даже davfs не нужен особо в плане скриптинга, curl'а хватит, чтобы совершить почти все возможные запросы.

У ТС есть публичный линк на ссылку с чужого диска. В силу определенных причин, прямое скачивание с публичного линка с чужого диска запрещено.

zhuravlik ★★★★
()
Ответ на: комментарий от ddank1

Таким макаром проще было линк в браузере получить: в огнелисе отрываем web-console, cмотрим что выплюнет на клик, полученную линку скармливаем wget-у.

anonymous
()
Ответ на: комментарий от zhuravlik

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

sin_a ★★★★★
()
Ответ на: комментарий от ddank1

долго правда

Возможно это было самым быстрым решением. Если считать не только время передачи данных, но и время подготовки.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

у меня интернет медленный оборвалась передача. но получилось скачать по протоколу webdav с помощью Cadaver спасибо всем)

ddank1
() автор топика

Вообще POP3/IMAP текстовые протоколы. Последний легко управляется через openssl клиент. Ты уверен, что expect и imap в твоем случае не подойдут?

xpahos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.