Бесконечная прокрутка (в twitter, vk и подобных)



  • В twitter, vk и на многих других сайтах при прокрутке страницы вниз отсутствует кнопка перехода на следующую страницу, при достижении конца страницы через несколько секунд подгружается следующая страница и так далее.

    Как в BAS можно реализовать эту пауза, для подгрузки следующей страницы?

    В режиме "Запись" прокрутка происходит медленно, успевают подгрузится следующие страницы и нельзя словить элемент, чтобы установить команду "Ждать полной загрузки".



  • @servasw45 привет - используй в конце действий цикла - действие спать выстави паузу - проверь ее на практике
    вот тебе пример
    0_1479989811254_test_for_vk.xml



  • @servasw45 Чтобы ждать пока загрузится страница используйте действие Ждать полной загрузки. Это грубый вариант, но работает везде.
    Самый быстрый вариант - Очистить кэшированные данные + Ждать Загрузки Url. Но нужно смотреть урл для каждого сайта отдельно.



  • Turutur, спасибо! Увидел твой ответ и последовал твоей рекомендации. После долгих экспериментов написал такой скрипт для считывания новостей с твиттера и записи их в файл:

    alt text

    Первый этап - делается несколько раз прокрутка,
    Второй этап - начинается считывание новостей.

    Правильнее было бы вот так, мне кажется:

    alt text

    То есть, сначала проработать первую страницу, затем прокрутить на вторую страницу, считать все со второй, перейти на третью и т.д.
    Только второй вариант (на самом деле был первым моим экспериментом) странно работал.

    На первой странице размещено и считывается 19 сообщений. Затем включалась прокрутка через FOR и добавлялось еще 19 сообщений. А считывание начиналось с первой страницы по вторую, то есть 19+19 сообщений. На третьем витке цикла FOR прибавляется еще 19 страниц, а считывание начинается снова с первого и всего получается 19+19+19 сообщений.

    В общем, эта бесконечная прокрутка - какое-то больное место. В программе Visual Web Ripper, припоминаю, тоже были сложности с таким типом перелистывания страниц.

    В BAS после команды Прокрутка надежнее всего использовать Ждать полной загрузки. Но как заставить скрипт продолжать обработку со второй страницы, а не начинать с начала... ? Есть необходимость автоматизировать кое что на web.crowdfireapp.com, а там тоже везде эта прокрутка используется.

    Уважаемый support, могли бы Вы придумать какую то функцию, чтобы программа BAS сам находила внизу этот подгружающийся элемент кода и цеплялась за него, как за метку или идентификатор следующей страницы. Потому что после этой бесконечной прокрутки получается одна сплошная страница, только длиннее. Я даже не представляю какие кэшированные данные нужно удалять...

    Вот мой скрипт:
    0_1480036828172_twitter-parser-news.xml

    Может кто-то усовершенствует или предложит лучший вариант.



  • @servasw45

    Но как заставить скрипт продолжать обработку со второй страницы, а не начинать с начала... ?

    Сохранять количество постов в переменную и начинать цикл с этой переменной.
    Либо обрабатывать данные только после прокрутки на несколько страниц.
    Либо получать через кеш результат запроса и обрабатывать его.

    Уважаемый support, могли бы Вы придумать какую то функцию, чтобы программа BAS сам находила внизу этот подгружающийся элемент кода и цеплялась за него, как за метку или идентификатор следующей страницы.

    Попробуйте одно из решений выше.

    Я даже не представляю какие кэшированные данные нужно удалять...

    Действие, которое я предложил(Очистить кэшированные данные) не получает никаких параметров, его нужно просто вызвать.



  • @support спасибо за подсказку!
    Значит, есть три возможных варианта решения для моей задачи. Разберусь и отпишусь.


Log in to reply