Как правильно парсить таблицу?
-
На сайте есть таблица с всегда разным количеством строк. Подскажите пожалуйста как можно получить текст. Примерная структура таблицы и нужная мне информация ниже
<table class="tbl tbl-char"> <tbody> <tr> <td>Постоянный текст 1</td> <td style="width:180px">всегда разный текст</td> </tr> <tr> <td>Постоянный текст 2</td> <td style="width:180px">всегда разный текст</td> </tr> <tr> <td>Постоянный текст 3</td> <td style="width:180px">НУЖНЫЙ всегда разный текст</td> </tr> <tr> <td>Постоянный текст 4</td> <td style="width:180px">всегда разный текст</td> </tr> </tbody> </table>
-
@nikitabaks наверное лучше всего через xpath будет, а что бы составить регулярку желательно видеть весь html код страницы..
-
Не знаю как бы сюда верно написать , чтобы было понятно . Скопирую исходный текст без БАСовских ньансов :
// html_parser_xpath_parse(VAR_SAVED_CONTENT) // парсим то что сохранили с сайта // указываем имя таблицы ( в кавычках ) VAR_XPATH_XML_LIST = html_parser_xpath_xml_list("//*[@id=\u0022proxylisttable\u0022]/tbody/tr") // для каждого елемента парсим ХМЛ цикл FOREACH_ARRAY_169139 = VAR_XPATH_XML_LIST _do(function(){ VAR_CYCLE_INDEX = _iterator() - 1 if(VAR_CYCLE_INDEX > FOREACH_ARRAY_169139.length - 1)_break(); VAR_FOREACH_DATA = FOREACH_ARRAY_169139[VAR_CYCLE_INDEX] section_insert() section_start("", 414765035)! // получить текст из //td[1] ( первый столбец ) html_parser_xpath_parse(VAR_FOREACH_DATA) VAR_IP = html_parser_xpath_text("//td[1]") // получить текст из //td[2] ( второй ) html_parser_xpath_parse(VAR_FOREACH_DATA) VAR_PORT = html_parser_xpath_text("//td[2]")
-
@kazarang Это вы вопрос задаёте, или отвечаете на полугодовалое сообщение?
-
@fox отвечаю , для меня это было актуально . Задачу решил , поделился решением. А что не так ?
-
отвечаю , для меня это было актуально . Задачу решил , поделился решением.
Ответ лучше было бы оставить тестовым скриптом, вышло бы нагляднее для новичков.
А что не так ?
Да я вроде просто спросил. Не понял вашего сообщения и решил уточнить.
-
@fox Я сам новичек ) в БАСе , спасибо @BasLike , в свое время ввел меня в imacros а теперь и сюда перетащил . И это мой первый скрипт , заработал ) Я рад , как слоняра , вот этот скрипт : 0_1539196184250_free-proxy-list2.xml он полностью открыт и добавлены комментарии
-
@kazarang у http клиента есть свой xpath и не надо будет сохранять ответ... а вообще вот упростил - 0_1539199115041_1539196179389-free-proxy-list2.xml
-
@uraabk Спасибо , вижу т.е. оперативно были созданы два списка , а потом слиты . Т.е. каждый элемент слит в переменную а потом удален из списка ( там галочка стоит )
-
@kazarang а вот быстрая версия, но крайне не понятная))) 0_1539201117763_fast-proxy-list3.xml
-
Вот это уже просто высший пилотаж ! notedat++ и никаких мышыных клацаний по менюшкам ! )) вот так уже БАС становится совсем няшным )
-
а вот быстрая версия, но крайне не понятная)))
Использовать api BAS'a в действии "выполнить код" не всегда уместно, каждый вызов будет занимать время. Попробуйте подобный цикл сделать на 1 000 000 строк, и он будет медленным по сравнению с обычным циклом js.
Вот скрипт на api BAS, добавляет в список (массив) 1 000 000 строк, за 14 секунд
[388325735] [23:43:19] Поток №1 : В списке NEW_LIST строк: 1000000
А вот скрипт на js так же добавляет в список (массив) 1 000 000 строк, но за 0 секунд
[388325735] [23:45:00] Поток №1 : В списке NEW_LIST строк: 1000000