Как писать скрипты для w3m или lynx?
Как я могу перемещаться (используя клавиши TAB или hjkl) и нажимать на вещи (ENTER), вводить текст скриптом bash в текстовых браузерах, таких как w3m и lynx? Я сказал текст на основе, потому что когда я перехожу на графику, эти браузеры после долгого процесса собираются уничтожить мой баран.
Я искал эту вещь в Google или YouTube, прежде чем спросить, но я обнаружил, что на самом деле не то, что я хочу. Я не знаю, как сказать ядру "нажми ENTER!" или "нажмите 6 раз, чтобы перейти сюда!" Пожалуйста, помогите мне, ребята! Мне нужен гид. Вы можете просто сказать мне, иди изучать это или смотреть это. Я видел что-то вроде Selenium, но эти вещи такие сложные и не совсем то, что я хочу.
2 ответа
Рысь имеет флаги записи и воспроизведения -cmd_log
а также -cmd_script
, Например, если вы находитесь на домашней странице gnu.org и 4 раза нажмите вкладку, а затем нажмите Enter, вы переходите на немецкую версию.
Вы можете записать это в Lynx с:
$ lynx -cmd_log=/tmp/gnu-log gnu.org
Looking up 'gnu.org' first
$ cat /tmp/gnu-log
# Command logfile created by Lynx 2.8.8pre.4 (04 Feb 2014)
# Arg0 = lynx
# Arg1 = -cmd_log=/tmp/gnu-log
# Arg2 = gnu.org
key Right Arrow
key Right Arrow
key Left Arrow
key <tab>
key <tab>
key <tab>
key <tab>
key ^J
key q
key <space>
В этом сценарии я ввел q, чтобы выйти из lynx. Так что этот скрипт выполнит какое-то действие и затем вернется в командную строку. С другой стороны, если вы хотите, чтобы вас поместили в рысь, просто обрежьте последние две строки из этого файла / tmp / gnu-log. Затем вы можете вызвать обрезанный файл с помощью:
$ lynx -cmd_script=/tmp/gnu-log gnu.org
Looking up 'gnu.org' first
... и вы будете размещены на немецкой странице gnu.org в lynx.
Наконец, в целях написания сценариев, просто включите lynx -cmd_script
с необходимыми аргументами в скрипте bash.
Полная дискуссия по адресу:
http://blog.unixy.net/2009/06/script-to-automate-browsing-actions-using-lynx/
Это решение не позволяет интерактивные сценарии. Например, вы не можете программно оценить часть веб-страницы, а затем выполнить операции ветвления на основе оценки. Тем не менее, это может быть полезно в ряде ситуаций. Вы легко получаете запись и воспроизведение макросов. Кроме того, вы можете создавать последовательности операций (и, конечно, сохранять веб-страницы) и настраивать задания cron.
W3M имеет базовую автоматизацию макросов, которую вы также можете написать
включить локальную папку cgi-bin в конфигурации w3m
sed -i 's@cgi_bin.*@cgi_bin ~/.w3m/cgi-bin:/usr/lib/w3m/cgi-bin:/usr/local/libexec/w3m/cgi-bin@g' ~/.w3m/config
создать сценарий
$EDITOR ~/.w3m/cgi-bin/macro_script.cgi && chmod +x ~/.w3m/cgi-bin/macro_script.cgi
echo "w3m-control: TAB_GOTO http://68k.news/"
echo "w3m-control: GOTO_LINE 15"
echo "w3m-control: NEXT_LINK"
echo "w3m-control: GOTO_LINK"
echo "w3m-control: NEXT_LINK"
echo "w3m-control: GOTO_LINK"
выполнить из терминала
w3m file:/cgi-bin/macro_script.cgi
это должно перейти на сайт, перейти к строке 15, открыть по следующей ссылке, как только загрузится следующая страница, она откроется по 1-й ссылке
для других функций см. https://github.com/tats/w3m/blob/master/doc/README.func