#javascript #bash #curl #webpage
#javascript #bash #curl #HTML
Вопрос:
Языки программирования — не моя сильная сторона, поэтому, пожалуйста, извините за все невежественное, что я говорю.
Мне нужно ввести данные на веб-страницу, которая запускает javascript для анализа данных, которые я предоставляю… проблема в том, что у меня несколько сотен пользователей, а веб-страница работает только по одному человеку за раз. вот страница http://www.hprg.com/hapest5/hapest5b/hapest5.htm
Как я мог бы использовать терминал (или что-нибудь еще) для итеративной загрузки каждого набора данных на страницу и получения результатов.
Я пробовал curl и wget в соответствии с этим… https://journalxtra.com/linux/bash-linuxsanity/bash-filling-web-forms-with-curl-and-wget / … использование formfind amp; wget / curl, но я думаю, что это не работает с вводом javascript.
Вот пример желаемого ввода.
Строка ввода: 13,21,15,11,0,0,0,0,11,13,11,30,16,0,0,0,0,0,14,21,0,0,0,0,0,0,22,0,0,15,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Никаких дополнительных аллелей; Разделитель = запятая
Я использую iMac (конец 2015 года) с macOS Sierra.
Ответ №1:
Я написал javascript, который может помочь хотя бы немного автоматизировать то, что вы пытаетесь сделать.
var inputStringArray = ['13,21,15,11,0,0,0,0,11,13,11,30,16,0,0,0,0,0,14,21,0,0,0,0,0,0,22,0,0,15,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', '10001', '0'];
function setInputString(newInputStr) {
document.getElementById('haplotype').value = '';
document.getElementById('haplotype').value = newInputStr;
}
function getResultData() {
var rowArray = document.querySelectorAll('#results tr'),
i, dataObj = {},
rowNode;
for (i = 0; i < rowArray.length; i ) {
if (i > 0) {
rowNode = rowArray[i].childNodes;
dataObj[rowNode[0].innerText] = {
fitness_score: rowNode[1].innerText,
probability: rowNode[2].innerText
}
}
}
return dataObj;
}
function execute(inputStringArray) {
var i, resultData = {};
for (i = 0; i < inputStringArray.length; i ) {
setInputString(inputStringArray[i]);
parse();
resultData[inputStringArray[i]] = getResultData();
}
console.log(resultData);
resultData = null;
}
execute(inputStringArray);
По сути, единственное, что вам нужно изменить в скрипте, — это значения в ‘inputStringArray’. Вы должны ввести столько входных строк, сколько хотите (входные строки должны быть заключены в одинарные кавычки и разделены запятой).
Откройте Google Chrome и нажмите кнопку F12 на клавиатуре, чтобы ввести инструменты разработчика Chrome и перейти на вкладку «Консоль»: https://developers.google.com/web/tools/chrome-devtools/inspect-styles/shortcuts
Оказавшись на экране консоли, вставьте скрипт снизу и замените строки в inputStringArray, затем нажмите enter. Вы должны увидеть объект javascript, напечатанный в консоли с результатами, которые вы ищете. Результаты будут выглядеть следующим образом:
Этот скрипт предназначен для запуска в консоли только для ссылки, которую вы указали в своем вопросе. Не стесняйтесь редактировать скрипт так, как считаете нужным.