@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Получить список ID в Facebook
-
Здравствуйте.
Может кто подскажет, я пробовал найти ответ на форуме, но конкретного ничего к сожалению не нашёл.
Пытаюсь спарсить ID пользователей из группы.
Как пример взял скрипт Hashtag Sucker от Ravil.
Вот пример того, что я намудрил:

К сожалению, на этапе "получить код элемента" всё виснет... может кто-то подсказать, что я делаю не так?
В коде страницы, нахожу такой код:/ajax/hovercard/user.php?id=100003880024538&extragetparams=%7B%22fref%22%3A%22gm%22%2C%22directed_target_id%22%3A1743463042548794%2C%22dti%22%3A1743463042548794%2C%22hc_location%22%3A%22group%22%7DВсё что мне нужно, это получить и записать в файл вот это:
id=100003880024538&extraget
Буду благодарен за подсказки. -
А оно и будет зависать, все правильно. Было бы странно, если бы оно не зависало.
Там где получить код элемента должно быть [[FOR_EACH_CSS]]>AT>[[CYCLE_INDEX]], а сейчас там какая то околесица.Это для начала. Дальше - надо проверить селектор в начале цикла.
И просто для общего развития - если парсить надо много, то лучше сохранять код страницы или его часть и проходить регуляркой. Производительность значительно выше чем у этих циклов.
-
Спасибо всем, кто попытался помочь! А есть видео инструкция по регуляркам? Я нашёл вот это: https://www.youtube.com/watch?v=U88xUpj2BiI попытался сделат ьна подобии, но без успешно...
Нашёл также видео https://www.youtube.com/watch?v=UkNvH-QNyxc и на сайте https://bablosoft.github.io/RegexpConstructor/#!/regexptest сделал всё по инструкции. Всё получилось... Мне выдало следующее сообщение:Ваше регулрное выражение:
member_id=(\d+)&ref=MEMBER_LIST"теперь не знаю как это внедрить в БАС. Поэтому ищу видео инструкцию...
PS: @andrwork спасибо за подсказку. Это был старый скрин. Я поправил и поставил как у тебя, но выдачи ноль...
Идея на счёт сохранения кода и прохождения регуляркой - интересна. Я просто ещё не знаю, как это нужно реализовать... -
Пытаюсь спарсить ID пользователей из группы
Если все ID пользователей уже есть в коде страницы, то их всех можно получить одним экшеном Xpath получить каждый xml (модуль Xpath). Могу помочь с составлением xpath запроса, для этого скинь код страницы файлом.
Для ознакомления могу посоветовать неплохой Мануал по XPath и заодно Шпаргалка по регулярным выражениям
-
Спасибо @Fox большое! Я тут методом научного тыка и благодаря подсказкам пользователей чёт намутил и получилось... только теперь другая загвоздка... они (ID) все в одной строчке разделённые запятой и есть повторы. Попытался добавить их в список, но чёт я там пока не разобрался что и как... может есть более простой способ?
Кстати, я делал не так как ты предложил. Я просто взял весь код страницы, функцией "Получить Код Элемента". Потом использовав функцию "Извлечь все данные" добавил туда регулярку и вуаля... ID спарсились... вот только в одну строку и с дубликатами :) Но получилось... :) Я к чему, что твой способ наверное более верный... но это то, что я пока умею... -
Потом использовав функцию "Извлечь все данные" добавил туда регулярку и вуаля... ID спарсились...
Экшен "Извлечь все данные" отдаёт ответ в виде списка (массив), можешь применить к нему экшен Удалить Дубликаты (модуль список). Сохранить можешь в файл, или использовать дальше циклами.
-
@aveko А ты сохрани эту переменную экшеном Записать Список В Файл, будет так как ты хотел.
Данные не идут в строку через запятую, это в логе так отображается просто. Список как поезд, в нём есть вагоны, в каждом вагоне сидят пассажиры, узнать в каком вагоне какие пассажиры сидят, можно по номеру вагона. -
О, спасибо за подсказку. Правда, я писал через экшен "Добавить Элемент". Таким образом список сразу же в файле. Я попытался использовать "записать Список в Файл", но ничего не добавилось... может всё добавляется после отработки скрипта целиком? Если да, то можно чтобы как-то сразу же писался в файл? Просто позже в скрипте данные должны быть задействованы, а если их пока нет, то будет ошибочка... :)

