|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Парсинг HTML |
|
CMD/BAT - Парсинг HTML
|
Старожил Сообщения: 192 |
Профиль | Отправить PM | Цитировать
Будьте любезны, подскажите мне как "вытащить" нужные мне части из HTML и поместить их в переменные для дальнейшего использования. Вот часть кода HTML:
Интересуют соответственно следующие присваивания: security_token = kYuaS/i/YsUp9TzXrRg7NOzaIUy4+auW7k73RNkl1ts= и login_ticket = c3b03122aa536e1440bb0091e2dba5f4 Следующей командой я сужаю поиск до тэгов: FOR /F "tokens=2,4 delims=<>" %%A IN ('FIND /I "security_token" index.php') А вот что с этим делать, у меня разобраться не получается. Попытка присвоения а ля DO SET SECTOKLINE = %%A во первых почему-то не совершает присваивания, а во-вторых не обрабатывает второй токен (который, как мне понятно находится в %B) Ох, а потом ведь ещё придётся переводить спецсимволы в переменной security_token в percent‐encoding, т.е. заменять / на %2F, + на %2B и = на %3D. Это вообще реально? |
|
Отправлено: 16:50, 24-09-2012 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Smasher, вариант с grep и wget :
@Echo Off SetLocal EnableDelayedExpansion Set URL=https://studip.fh-trier.de/index.php?again=yes Set Page=%Temp%\loginpage.tmp rem Получаем страницу,особо не отсвечивая и прикидываясь браузером. wget --no-check-certificate -U "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1" --referer "https://studip.fh-trier.de/index.php" "%URL%" -O "%Page%" 1>nul 2>nul rem Получение требуемого тэга целиком For /F "tokens=1 delims=<>" %%A In ('grep -Eo "<input.{21}security_token[^<]*>" "%Page%"') Do ( rem После избавления от символов перенаправления в предыдущем цикле заменяем rem двойные кавычки, потому что их нельзя установить в качестве значения delims Set Data=%%A&Set Data=!Data:"='! rem И вытягиваем ключик For /F "tokens=6 delims='" %%B In ("!Data!") Do (Set security_token=%%B) ) For /F "tokens=1 delims=<>" %%A In ('grep -Eo "<input.{21}login_ticket[^<]*>" "%Page%"') Do ( Set Data=%%A&Set Data=!Data:"='! For /F "tokens=6 delims='" %%B In ("!Data!") Do (Set login_ticket=%%B) ) Echo security_token: !security_token! Echo login_ticket: !login_ticket! Pause |
Отправлено: 22:02, 24-09-2012 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Ortis:
|
|
Отправлено: 22:08, 24-09-2012 | #12 |
Старожил Сообщения: 192
|
Профиль | Отправить PM | Цитировать Всем спасибо за предложенные варианты, буду разбираться как что работает, очень интересно
Насчёт замены спецсимволов предложенный Bob256 вариант работает в случае символов "/" и "+", а со знаком равенства следующая конструкция (построенная мной аналогично предложенным) не работает: С таким кодом вместо замены символов переменной присваивается значение security_token:==%3D |
Отправлено: 22:44, 24-09-2012 | #13 |
Старожил Сообщения: 192
|
Профиль | Отправить PM | Цитировать Чтобы не открывать новую тему, спрошу здесь: можно ли посредством BAT запустить несколько процессов параллельно, т.е. не дожидаясь пока закончит выполнение первый, запустить ещё несколько? Ну, например, в линуксе можно было бы это реализовать посредством символа "@" в конце строки, таким образом процесс запускается в бэкграунде. А в Windows я не знаю как это сделать. Если с помощью BAT это сделать невозможно (что я подозреваю так и есть), подскажите каким ещё способом это можно автоматизировать?
|
Отправлено: 17:17, 25-09-2012 | #14 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Цитата Smasher:
И всё-таки, согласно правилам этого форума - "отдельный вопрос = отдельная тема". |
|
Отправлено: 20:45, 25-09-2012 | #15 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Парсинг XML/TXT | mxm199 | Скриптовые языки администрирования Windows | 10 | 17-07-2012 12:34 | |
Java - Парсинг doc-файла | Hector | Программирование и базы данных | 7 | 15-03-2012 21:37 | |
CMD/BAT - Парсинг | Чин Хон | Скриптовые языки администрирования Windows | 1 | 04-02-2011 13:51 | |
Delphi - Парсинг | Miko | Программирование и базы данных | 7 | 27-09-2010 10:46 | |
Парсинг PR | venuko | Вебмастеру | 3 | 13-01-2010 14:15 |
|