LINUX.ORG.RU

curl: скачать все данные форм

 , , ,


0

1

Всем привет.

Хитрая задача (для меня). Есть сайт с формами (веб-интерфейс железки) - куча параметров. Мне нужно curl-ом из консоли переключить один параметр сначала на одно значение, а потом вернуть на предыдущее (ну типа передернуть один параметр).

Отсюда вопрос. Как мне узнать какие параметры там стоят чтобы их передать без изменений, а поменять только один нужный мне. На той стороне сишный cgi-bin которому нужен весь комплект параметров (порядка 70, убираешь любой и уже ничего не работает). Как вариант, можно слить полные параметры из инспектора браузера (я сейчас так и сделал) и для каждого случая отправлять два набора. Но если там в какой-то настройке что-то будет не совпадать с моей заготовкой, то моим запросом тот параметр переустановится в неправильный.

Резервный вариант это писать на каком-нидь пистоне/php полноценный парсер и все такое. Но хотелось бы обойтись только bash-ем и всякими curl/grep/awk/sed и т.д.

★★★★★

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

А грепать только нужный мне параметр и потом весь хтмл отдавать обратно постом? И это будет работать?

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

А грепать только нужный мне параметр и потом весь хтмл отдавать обратно постом? И это будет работать?

Нет конечно. Грепом, авком, зедом и что там у тебя еще делай из хтмл то, что твоя железка от тебя ждет. Во вкладке «сеть» в браузере посмотри что посылается. Заодно загугли что такое GET и POST.

anonymous
()

хотелось бы обойтись только bash-ем и всякими curl/grep/awk/sed и т.д.

ох уж эта русская любовь страдать

писать на каком-нидь пистоне/php полноценный парсер

возьми вебдрайвер и за три минуты сделай переключалку

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

Молодец, допёр. Теперь возьми нормальный язык.

И что матерые веб-макаки посоветуют?

yax123 ★★★★★
() автор топика
23 сентября 2020 г.

Отсюда вопрос. Как мне узнать какие параметры там стоят

посмотреть в исходниках страницы

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

Уже не актуально. Оказалось, что задача стояла в принципиальной возможности так сделать. После чего, задачу перекинули шарписту который сделал хорошо.

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

а ещё форма может на лету модифицироваться скриптами, так что нужен ещё и жабаскрипт-интерпретатор

в общем, гиблое дело

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

HTML регулярками не парсится

Конкретный сайт с конкретной версткой вполне можно распарсить.

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

Если нет шифрования, то можно просто получить в текстовом виде post-запрос, сформированный браузером, модифицировать параметры в нем и слать на сервер даже с помощью netcat в виде обычного текста. Впрочем, даже с шифрованием можно это сделать, но придется совершить несколько дополнительных действий. Конечно, может не сработать, если post-запрос формируется по хитрым правилам и даже с одинаково заполненными формами получается каждый раз разный.

Leupold_cat ★★★★★
()
Последнее исправление: Leupold_cat (всего исправлений: 5)
Ответ на: комментарий от Harald

Ну мне не нужен универсальный парсер всего интернета. А только парсинг моей железки у которой все просто чуть ли не на голом html. И параметры там никак не модифицируются.

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

А можно подробней или в виде примера? Шифрования там нет. Как получить все 70 текущих параметров со страницы?

yax123 ★★★★★
() автор топика

а что у железки нет конфигов, нет снмп, нет цли, а ты со своими парсерами да курлами с выборами параметров и пляской. Тащемта «Выбираешь, торгуешься… Ты унижаешь меня» (с) Какой-то нордлинг.

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

Можете кусок html с формой показать? Или рассказать о нем. Если там все - обычные input, то можно примитивным скриптом регулярными выражениями найти все «value=» и «name=».

Leupold_cat ★★★★★
()
Последнее исправление: Leupold_cat (всего исправлений: 3)
Ответ на: комментарий от anonymous

Унизить анонима это доблесть. Это вторая, по значимости причина моего нахождения здесь.

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

Прислать конечно могу. Если только в этом смысл?

Задача уже успешно решена.

Если только из любви к искусству. Сейчас доеду до компа и скину пример.

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

Вопрос то был в том, есть ли уже готовый инструмент по доставанию всех передаваемых параметров.

Написать регексп или там шаблон на xslt терпения бы у меня хватило.

Подумал, что эту задачу уже успешно решили. Просто из-за того, что я не в теме, про него не в курсе.

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

Если только в этом смысл?

Если задача уже решена, то смысла нет. Разве что для развлечения.

Leupold_cat ★★★★★
()
Последнее исправление: Leupold_cat (всего исправлений: 1)
Ответ на: комментарий от yax123

Ну вот, классики не знаешь :) так чем не устраивают проверенные временем способы рулежки железяками сетевыми, к чему этот маскарад, тебе не дают доступа ни до чего кроме вебгуйни?

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

чем бы еще унизить анонима….

Может потому что железка жуткое легаси, да еще и унаследованное? Или может потому, что нужно быстрое наколеночное решение которое будет использоваться еще 6-12 месяцев, а потом прямиком на свалку истории?

За что люблю лор, за то что предлагают искать ключи не там где их потерял, а под фонарем где им лучше видно.

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

Классическое удаление гланд через жопу. Вы мой дорогой даже себя унизить не сможете при всем желании ) Мог бы просто признаться что непущают железки настраивать не через веб интерфейс, и держут за макакена вручную правящего формочки. Ох уж эти унижаторы3000 с лорчика :3

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

Еще раз. Мне нужно распарсить только одну мою страницу, а не универсальное решение для всех сайтов в мире. Это решение проживет примерно полгода.

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

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

Классическое удаление гланд через жопу.

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

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

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

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

70 параметров вбить в команду курла

Опять ты не внимательно читал. Это как раз очевидно и было сделано.

Просто тогда все текущие настройки будут взяты из этого сохраненного дампа. А если одна из этих текущих настроек будет изменена? То скрипт в нее запишет свое сохраненное значение. А мне надо сначала получить текущие настройки (которые в разных девайсах могут отличаться), воткнуть в одном месте свое значение и отдать обратно.

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

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

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

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

Сколько благоглупостей в одном посте.

Так, про пони и радугу я писал? Ну тогда больше аргументов у меня для вас нет.

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