Как получить страницу с большим количеством тем

Автор lgrom, 29 апреля 2018, 19:10:33

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

lgrom

Всем привет!

Есть у меня скрипт, который парсит форум.
Судя по тому, что написано на самом форуме, он на SMF 1.1.19
Парсится по одной странице (40 тем на каждой), несколько страниц, через определенный таймаут.
Хотелось бы уменьшить количество запросов к форуму и оптимизировать затрачиваемые мощности моего сервера на этот процесс.

Отсюда вопрос:
Можно ли как то получить одним запросом страницу с количеством тем более 40?
Пробовал изменять окончание ссылки, задавал диапазон или конечные значения, но не получилось
https://***.org/index.php?board=159.0

Заранее спасибо.

GeorG

Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

lgrom

Цитата: GeorG от 29 апреля 2018, 19:25:40LIMIT 40

https://***.org/index.php?board=159.0;type=rss;action=.xml;limit=50 отвечает "action=.xml is disabled due to slowness."

как то можно по другому LIMIT использовать?

GeorG

Цитата: lgrom от 29 апреля 2018, 20:07:13как то можно по другому LIMIT использовать?
Я дал вам вам оператор для выборки определенного количества записей из БД (из вашей БД, вы же в начале про запрос писали, а не про функцию RSS).

Через функцию RSS у вас не получится, там ограничение, о чем вам и написано: is disabled due to slowness, если этой строкой вы берете RSS с другого форума, то вопросы к ним, это они ограничение выставили принудительно.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

lgrom

Форум не мой, поэтому доступа ни к админке, ни к базе данных нет.
Парсится постранично, по 40 тем на странице, get запросами

GeorG

Это ограничение выставлено на том форуме откуда вы берете RSS ленту, видимо форум популярный, и многие пользуются их RSS, чтобы снизить нагрузку, они сделали ограничение.

Цитата: lgrom от 29 апреля 2018, 20:55:29Парсится постранично, по 40 тем на странице, get запросами
Придётся вам подстраиваться под них, уменьшайте количество до того размера, как будет работать.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

lgrom

Если без RSS, можно ли как то сформировать ссылку таким образом, чтобы форум на нее отдал список больше чем 40 тем?
Лимит указать, или начальную и конечную тему или еще какой-то вариант. Есть такое в этом движке?

В каком виде я получу ответ, не особо важно, потом его можно будет распарсить.

GeorG

#7
Я не знаю как у вас устроен сам скрипт, как он работает, и вывод чего именно вы хотите получить (с текстом первого сообщения, или без, если с текстом, то только через RSS).
Про возможные настройки RSS можете тут посмотреть https://wiki.simplemachines.org/smf/XML_feeds но RSS всё равно отключен, вам это не поможет.

Цитата: lgrom от 29 апреля 2018, 21:13:40В каком виде я получу ответ, не особо важно, потом его можно будет распарсить.
Есть вариант, если админ (дурак, и) сам выставил в настройках отображение количества тем 40 и более, то можно открыть сам раздел со списком тем /index.php?board=159.0, и от туда парсить (конечно если там доступно для гостей список из 40 тем), или если запрещено такое дело, но у вас есть регистрация на том форуме, то обычно (если не запрещено админом) можно выставить количество отображаемых тем в настройках профиля пользователя (внешний вид), а далее подключайтесь через свою учетку скриптом, заходите в нужный вам раздел, и там будет выводить столько тем, сколько указали в профиле (но там не будет текста первого сообщения). Только я не могу точно сказать, есть ли такое для версии 1.1.19, в 2.0.х точно есть.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

lgrom

Скрипт ищет вновь появившиеся темы в разделе форума.
То что внутри новой темы не важно.

Раз в час он смотрит какие темы появились вверху раздела и сравнивает со своей базой.
Берет только то, что есть на странице: названия тем, кол-во ответов, просмотров, ссылку на тему и т.д. Внутрь темы не заходит.

Последовательно читает
/index.php?board=159.0
/index.php?board=159.40
/index.php?board=159.80 и т.д.

Сейчас это 6 ссылок, которые он проходит с таймаутом в 3 секунды.

На первом этапе такой алгоритм устраивал. Сейчас же хочется уменьшить количество обращений к форуму и сократить время работы скрипта.
В идеале нужно получить 240 тем на одной странице.

Форум открытый, я там зарегистрирован, но в профиле, к сожалению, нет настройки количества отображаемых тем.

P.S. Если я правильно понял, то 40 тем на странице - это ограничение заданное админом и победить его (ограничение) нельзя.

GeorG

Цитата: lgrom от 29 апреля 2018, 22:26:05это ограничение заданное админом и победить его (ограничение) нельзя.
Да, всё правильно, нельзя.

Цитата: lgrom от 29 апреля 2018, 22:26:05Последовательно читает
/index.php?board=159.0
/index.php?board=159.40
/index.php?board=159.80 и т.д.

Сейчас это 6 ссылок, которые он проходит с таймаутом в 3 секунды.

На первом этапе такой алгоритм устраивал. Сейчас же хочется уменьшить количество обращений к форуму и сократить время работы скрипта.
В идеале нужно получить 240 тем на одной странице.
Не понял, какая разница. Последовательно ли скрипт считает по 40 тем на каждой странице общим количеством 240 тем, или они сразу вывалятся на одну страницу?
Если сразу 240, это только повысит нагрузку.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

lgrom

Цитата: GeorG от 29 апреля 2018, 22:37:19Если сразу 240, это только повысит нагрузку.
Хм, и правда, серверу форума будет тяжелее.

Тогда все, вопрос закрыт.

Спасибо за помощь.