Цикличная загрузка и обработка

Тема в разделе "Решение различных задач по парсингу", создана пользователем Rsa, 6 окт 2018.

  1. Rsa

    Rsa New Member Пользователи

    Регистрация:
    25 фев 2015
    Сообщения:
    24
    Здравствуйте,

    подскажите, пожалуйста, какие есть варианты для реализации следующей задачи.

    Существует сайт (допустим) Ссылки недоступны для гостей. На нём отображается сразу 10 изображений с текстом и если необходимо загрузить следующие 10, то потребуется перейти на новую страницу, ссылка-кнопка на которую указана внизу.

    Когда решаю эту задачу с помощью WBApp, который скроллит вниз страницы и нажимает кнопку, то все работает. Но если нужно спарсить 1000 и более страниц, то память перегружается и понятно почему (так устроен WBApp, который каждый раз подгружает код новой страницы в память).

    Есть функции GETMORECONTENT и GETMORECYCLECONTENT. Прочитал на форуме, что некоторым людям для решения подобных задач их и рекомендовали, но не нашёл достоверного подтверждения, да и у меня самого тоже не получается.

    Получается сделать только так, что программа один раз выполняет эти функции и подгружает полученный код. А задача состоит в том, что нужно сделать n-ное количество раз.

    Возможно ли это сделать с помощью данных функций?
    И если можно на простом примере, пожалуйста :)

    Или, может быть, есть также и другие варианты (кроме как спарсить все ссылки и потом по ним пробежаться)?

    Благодарю заранее!
     
  2. inotoxic

    inotoxic Well-Known Member Пользователи

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    Можно отснифать запрос в момент нажатия кнопки - скорей всего будет или POST запрос с пагинацией или ответ в виде json, также может быть запрос передаваться через websocket что мало вероятно.
    Соответственно меня параметры в запросе можно получать данные с других страниц
     
  3. Rsa

    Rsa New Member Пользователи

    Регистрация:
    25 фев 2015
    Сообщения:
    24
    Спасибо за ответ!

    Если бы там была пагинация, то это было бы слишком легко.. )))

    Там ссылка вида:
    Ссылки недоступны для гостей
     
  4. inotoxic

    inotoxic Well-Known Member Пользователи

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    Я имел ввиду не стандартную пагинацию, которая явно видна странице.
    Ваша ссылка, ни какой полезной нагрузке не несет.

    Для того, что-бы помочь, нужно видеть нормальную ссылку с сайта, а не вида - Ссылки недоступны для гостей
     
    kagorec нравится это.
  5. Rsa

    Rsa New Member Пользователи

    Регистрация:
    25 фев 2015
    Сообщения:
    24
    Хорошо, смотрите. Я искал гипотетические варианты решения задачи, а вам конкретика нужна.
    К примеру, вот страница, с которой я начинаю парсинг фоток с описаниями:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Внизу страницы есть кнопка Load More со ссылкой:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Тогда повторюсь с вопросом - возможно ли спарсить n-ное количество страниц (допустим 500) таким образом, чтобы не переполнялась память на компьютере, как это происходит при стандартном парсинге с помощью WBApp?
    То есть после первого посещения страницы скачать все фотки и сохранить в csv все описание, что под фотками. Далее загрузить следующую страницу, скачать все фотки и описание и так 500 раз.
     
  6. inotoxic

    inotoxic Well-Known Member Пользователи

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    Что мешает через сканер с каждой страницы выдачи, собрать ссылки такого вида?
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
     
    kagorec нравится это.
  7. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    В сканере добавьте в фильтр очереди ?cursor=
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 5 постов.**
     
    Kreol и inotoxic нравится это.
  8. Rsa

    Rsa New Member Пользователи

    Регистрация:
    25 фев 2015
    Сообщения:
    24
    Сканер переходит по страницам, собирая ссылки. Потом по этим ссылкам нужно еще раз переходить, чтобы парсить контент. Почему бы за один проход сразу не делать обе вещи?
    Собственно так мне и пришлось сделать, после того как понял, что не знаю как настроить проект иначе.

    Благодарю! Да, сканер-то настроить удалось без проблем с самого начала.

    Вопрос именно в том, возможно ли парсить контент, находить ссылку на следующую страницу и продолжать парсить в тех же самых границах на новой странице, и продолжать этот процесс n-ное количество раз (или до тех пор пока не будет не найдена ссылка на следующую страницу)?

    Неужели все сталкиваясь с подобной ситуацией просто делают в два прохода?
     
    Последнее редактирование: 10 окт 2018
  9. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Сталкиваемся почти все время) при том что я например сканер просто не использую, не люблю я его. И иногда делается до 7 проэктов которые просто запускаются друг за другом. Ничего страшного в этом нет
     
  10. Rsa

    Rsa New Member Пользователи

    Регистрация:
    25 фев 2015
    Сообщения:
    24
    Ясно ) значит других вариантов пока нет и если только в одном из последующих обновлений что-то такое появится :)
     

Поделиться этой страницей