Парсинг при помощи WBapp или парсинг страниц с динамическими URL

Тема в разделе "Решение различных задач по парсингу", создана пользователем vavera4ka, 29 авг 2014.

  1. vavera4ka

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

    Регистрация:
    28 авг 2013
    Сообщения:
    21
    Доброго всем дня!

    Столкнулся с следующей ситуацией. Не знаю как решить.

    Необходимо спарсить все сообщения определённых пользователей на форуме.
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Возможности вывести все сообщения на одной странице нет.

    Так вот каким образом спарсить контент с последующих страниц, с учётом того, что ссылки вида Ссылки недоступны для гостей, зарегистрируйтесь или авторизуйтесь на форуме! имеют динамический вид и соответственно собирать URL сканером ссылок не имеет смысла.
     
  2. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.542
    Так как вы не показали сам форум, врядле вы получите вразумительный ответ. Возможно как раз надо собирать не сканером, а через вкладку ссылки.
    И не обязательно во всем использовать wbapp
     
  3. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    3.538
    vbulletin он и в африке vbulletin))
    Структура одинаковая и для примера можно было бы даже на нашем просмотреть. Вчера посмотрел все знакомые вбулетин форумы и у всех одинаково.
    Правильно Антон вам подметил что не всегда wbapp стоит использовать.
    К примеру у вбулетин форумах есть список юзеров ../memberlist.php где нужных юзеров можно выявить и главное ссылки на их профили откуда уже взять ссылку из информации "Статистика - > Найти все сообщения"
    Далее когда все ссылки от таких юзеров собраны, добавим в список очереди сканера и указываем что надо собирать в очередь ссылки содержащие
    Для каждой юзер ссылки по два условия

    п.с. если непонятно, можно и подробнее расжевать)
     
  4. vavera4ka

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

    Регистрация:
    28 авг 2013
    Сообщения:
    21
    Благодарю всех за ответы, но :)

    Смотрите, у меня задача следующая:

    Выпарсить все сообщений определенных пользователь по ссылке "Найти все сообщения". Ссылка имеет адрес
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    . После того как по ней проходим, нас перенаправляет на
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Где "searchid=702477" временная сессия. То есть, если вам дать ссылку то форум отдаст "Извините, нет совпадений. Попробуйте указать другие ключевые слова.".

    У меня где-то 150 пользователей, я уже писал выше, что ссылки собирать по ним бесполезно совершенно. Поэтому я хотел сделать как-то так:

    1. Начинается процесс парсинга первой страницы, первого пользователя.
    2. После того, как она спаршена, WBapp жмет на 2 стр. и начинается парсинг второй страницы.
    2. Так далее по всем пользователям.

    Это необходимо из-за того, что все страницы должны быть спаршены в рамках одной сессии.

    Но, что-то так у меня не получается сделать :)
     
    Последнее редактирование: 30 авг 2014
  5. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.542
    Ну вот опять же, если у Вас не выходит, это не значит что нельзя по другому!
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Вместо query=Anton подставьте своего поискового юзера
    И не надо тут wbapp, просто сгенерируйте нужные ссылки.
     
  6. vavera4ka

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

    Регистрация:
    28 авг 2013
    Сообщения:
    21
    Я согласен с вами, поэтому я и обратился на форум :)

    Но в данном случае нас все-ровно перекидывает на URL типа:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    А атм в свою очередь
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    10 стр. Всё дело в этих страницах, кол-во которых у каждого пользователя разное. Если бы можно было бы выводить все сообщения на одной странице, так не было бы проблем :)
     
    Последнее редактирование: 30 авг 2014
  7. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.542
    Немного поразмыслив получаем такое.
    1) создаем ссылки по шаблону что привел выше
    2) ПАРСИМ их, соответственно создавая сессию (которая живет хз сколько, думаю минут 20-30) и забираем границу
    Код:
    var RELPATH = "search.php?searchid=702567"; 
    + сразу 2-й границей забираем количество
    Код:
    <a href="search.php?searchid=702567&amp;pp=&amp;page=6" title="Последняя страница
    Причем шаблон может быть как автоматический, так и ручной (т.е. создавать ссылки надо будет руками)
    Парсим 2-м проектом нужные ссылки.
     
  8. vavera4ka

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

    Регистрация:
    28 авг 2013
    Сообщения:
    21
    Хмм, и что мы получим этими границами? Тем более что кол-во страниц не ограничивается последней страницей доступной с первой страницы.

    К примеру:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    С первой страницы доступна лишь 5-я страница, но с неё уже доступна 9-я, а с 9-ой, 13-я и т.д.

    Поэтому я и хотел сделать через WBapp чтобы загружать URL

    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Парсить заданные границы, затем переходить по странице, пасрить её и т.к далее по всем пользователям.

    Если спарсить searchid то при он затирается для юзер-агента, если он осуществил другой поиск.

    То есть это означает, что получив при поиске "searchid" от одного пользователя, при поиске по другому пользователю, нам сгенерится другой "searchid" и первый уже будет не актуальный.
     
  9. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    3.538
    Как вариант

    1. Проставить диапазон ссылок (по поиску юзера и его постов) в вкладке "ссылки" и перекинуть список в СКАНЕР, правда с пагинацией тут при проставке либо в ручную проверять либо тупо с запасом на каждого назначить чтоб наверняка.
    2. В сканере указать что сбор для ссылок очереди идет по наличию в ссылке "searchid=" чтоб собрало все ссылки пагинации от каждого юзера.
    3. В фильтре ссылок добавить следующее:
    и отметить галочку что эти все пункты должны присутствовать в ссылке

    В результате получаете список ссылок на каждый пост
     
  10. vavera4ka

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

    Регистрация:
    28 авг 2013
    Сообщения:
    21


    Хмм, теперь другая проблема, как передать в к примеру в [CHECKENTRY] имя пользователя или значение в &p=24802499, т.к это ID поста.

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

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