Я пытаюсь очистить веб-сайт, и я не хочу, чтобы его заставляли рекурсивно очищать каждую страницу до "конца".
Я хочу иметь возможность просто получить последнюю страницу, или любая страница между ними.
В большинстве случаев это не проблема, но эта веб-страница отличается. Например:
Я выполняю поисковый запрос по: "Logitech"
Веб-сайт возвращает следующую информацию, которую я хочу использовать:
- Общее количество найденных продуктов : 15.000
- Товаров на странице: 30
- Нумерация страниц: 1, 2, 3, 4, ... 500 (15.000 / 30 = 500)
Однако кажется, что Общее количество найденных продуктов - ложная информация, как и нумерация страниц, потому что когда я пытаюсь получить доступ к https://website.com/products?q=Logitech&page=500
нет товаров. Это также относится к более низким значениям, таким как: 499, 498, 450, 400, 350 и т. Д. c.
Поэтому я попытался «подсчитать» возможные номера страниц в своей голове, и я опустился до фактический номер последней страницы: 166
Я "рассчитал" это, проверив, были ли результаты:
- Если были результаты: приращение значения на сумму x
- Если результатов не было: уменьшить значение на сумму x
Поэтому я создал тестовый скрипт , чтобы отчасти повторить мой метод поиска номера страницы (repl.it ссылка): https://repl.it/@SaltyPotato1 / LastPageCalculator
Но у меня есть две проблемы с его сценарием (и я надеюсь, что вы, ребята, можете мне помочь):
Этот скрипт «знает» правильное значение ( 166 ), поэтому он может использовать операторы >
и <
, когда я выполняю очистку; Он может только проверить, есть ли результат в этом случае: продукты. Это означает, что есть только 2 варианта:
- Если есть результат, это будет означать, что: номер страницы либо слишком низкий , либо он находится в Фактически номер последней страницы.
- Если есть нет результата , это будет означать, что: номер страницы слишком высокий.
У меня такое чувство, что сценарий / расчет можно улучшить, поскольку некоторые значения передаются дважды.
Что я могу сделать, чтобы определить, действительно ли это номер последней страницы вместо номера страницы «под» фактической последней страницы. И как я могу минимизировать количество запросов, которые будут сделаны для расчета этого.
Я с нетерпением жду ваших ответов / помощи!