Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Распарсить письма в gmail
-
Подскажите, как можно распарсить текстовку и ссылки в gmail ящике.
Есть рассылка, куча писем, нужно из них взять описание и ссылку на соответствующий архив. Если бы были обычные страницы с хтмл, то все было бы просто, xpath или getElements*, но тут в коде странице ничего не найти.
Как можно выкрутиться? Заранее спасибо. -
@drobotenko можно использовать регулярные выражения
-
регулярные выражения же тоже работают с кодом страницы? а в коде страницы скриптованная билиберда. прямого текста нет
-
Если работаете через веб-браузер, а не на запросах, то можно после загрузки страницы "Получить код/текст элемента" с помощью правой клавиши мыши.
Но когда речь идет про письма с почты нужно начинать с вариантом через модуль "Почта", правда для gmail вроде названия папок нестандартные и он автоматом их в разные папки закидывает -
Xpath работает и с переменными. Протестировать можно в любом тестере xpath online.
Ну или регуляркой.
Приведите пример тела и что нужно получить, может подробно подскажут тут. -
Всем спасибо за ответы. После операции "Получить сообщение" я получил тело письма, там большие тела, в каждом письме содержатся от 2 до 4 таких кусков, кроме них еще куча кода, подобного этому. Казалось бы можно зацепиться за name=email_N, но в разных письмах разные айди у этих имен. Нет никаких зацепок по общим классам, айди, именам.
Один из таких кусков ниже. Такая каша в каждом письме. Нужно получить TEXT 1 & TEXT 2, LINK, DESCRIPTION<tr> <td style="text-align:center"><span style="font-family:Arial;color:#000000" id="m_-7350377190809163857email_8" name="email_8"><b style="font-size:22px;text-align:center"></b></span> <h2 style="color:#444444;padding:0px;margin:0px;font-family:roboto_slabregular,sans-serif,Arial,Trebuchet,Tahoma;font-weight:normal;font-size:25px;line-height:30px"><span style="font-size:36px" id="m_-7350377190809163857email_9" name="email_9"><span style="color:#000000" id="m_-7350377190809163857email_10" name="email_10"><span style="font-family:Arial;color:#000000" id="m_-7350377190809163857email_11" name="email_11"><b><img src="http://media.campaigner.com/media/..." alt="99999.jpg" width="700" height="370"><br><br>TEXT 1 </b></span><b><span style="font-family:Arial" id="m_-7350377190809163857email_12" name="email_12">&</span><span style="font-family:Arial" id="m_-7350377190809163857email_13" name="email_13"> TEXT 2</span></b></span></span></h2> <span style="font-family:Arial;color:#000000" id="m_-7350377190809163857email_14" name="email_14"><b style="font-size:22px;text-align:center"></b><br> </span> </td> </tr> <tr> <td style="text-align:center"><span style="font-family:Arial;color:#000000" id="m_-7350377190809163857email_15" name="email_15"><a href="http://LINK/" name="m_-7350377190809163857_lf" id="m_-7350377190809163857auto_assign_link_num_6" target="_blank"><img src="http://media.campaigner.com/media/..." alt="b_Download.png"></a><br> </span><span style="font-family:Arial;color:#000000" id="m_-7350377190809163857email_16" name="email_16"><br> </span> </td> </tr> <tr> <td style="text-align:left"> <p><span style="font-family:Arial;color:#000000" id="m_-7350377190809163857email_17" name="email_17"><span style="font-size:18px" id="m_-7350377190809163857email_18" name="email_18"><span style="color:#000000;font-family:Arial;font-size:18px" id="m_-7350377190809163857email_19" name="email_19">DESCRIPTION</span><br> </span></span></p> </td> </tr> -
@drobotenko можно просто из спанов выдергивать и подпорядку раскладывать.
-
@Bigma т.е. делать это в несколько стадий? выдергивать все спаны, потом регулярками искать нужные куски? ага, что-то близко
-
@drobotenko посмотрел там мусора много, проще будет xpath сделать для каждого текста.