PHP парсер, 100 страниц. Делать паузу или есть способ лучше?

12
t1mkke
На сайте с 06.09.2012
Offline
82
1188

Всем привет, есть свой плагин для WP, который парсит кое-какие данные. Сейчас страниц около 100, но дальше будет больше. Планирую запускать через cron. Протестировал на нескольких URL, но вот как парсить большое количество, чтобы не забанили IP и скрипт не падал? Подскажите, ставить паузу после каждого URL? Тогда скрипт может долго выполняться. Может есть еще какой-то способ?

D
На сайте с 14.01.2007
Offline
153
#1

100 страниц чего? одного сайта? разных? как часто?

кто должен забанить IP?

t1mkke
На сайте с 06.09.2012
Offline
82
#2

Dinozavr, 100 разных страниц одного сайта. Скрипт запускаться будет раз в день. Когда-то парсил другой сайт и мой IP забанили, походу за частые запросы на сайт. Скрипт просто получал пустую страницу в ответ, а в браузере контент был (скрипт был на хостинге).

donc
На сайте с 16.01.2007
Offline
686
#3
t1mkke:
100 разных страниц одного сайта

Да никак. Как только владелец просечет, что его парсят - тут же и забанит ип.

Ну, если конечно просечет, если он проверяет уникальность периодически

Продвижение сайтов от 25 000 в мес, прозрачно, надежно https://searchengines.guru/ru/forum/818412 , но не быстро, отзывы
D
На сайте с 14.01.2007
Offline
153
#4

t1mkke, как вариант - прокси. но это вечная игра в кошки-мышки. во-первых, он вас уже знает, во-вторых всегда может найти по своему контенту

TF-Studio
На сайте с 17.08.2010
Offline
334
#5

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

99% решит проблему.

sleep(1); // и нет проблем

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
C
На сайте с 26.10.2013
Offline
54
#6

Список урлов в базу данных, в таблице три поля - ID (primary key), url и date

Выбрали 10 урлов у которых date < time() - 60*60*24, спарсили, обновили у них date на текущее время. Парсер запускать по крону раз в 5-10 минут без остановки. Если парсить нечего - нагрузку он не создаст.

Услуги по парсингу данных (/ru/forum/939826), единоразовый и регулярный сбор данных. Любые объемы. Скрипты на PHP, создание и доработка, решение проблем с сайтами Пишите в личные сообщения или скайп
t1mkke
На сайте с 06.09.2012
Offline
82
#7
TF-Studio:
если крон и не критично быстро получать, делайте задержки и всё.
99% решит проблему.
sleep(1); // и нет проблем

Скрипт не упадет так? Я просто с PHP мало знаком, знаю, что при долгом выполнении может падать.

colorito:
Список урлов в базу данных, в таблице три поля - ID (primary key), url и date
Выбрали 10 урлов у которых date < time() - 60*60*24, спарсили, обновили у них date на текущее время. Парсер запускать по крону раз в 5-10 минут без остановки. Если парсить нечего - нагрузку он не создаст.

Только об этом подумал :) Как раз есть updated date в базе. Спасибо.

D
На сайте с 14.01.2007
Offline
153
#8
t1mkke:
Я просто с PHP мало знаком, знаю, что при долгом выполнении может падать.

set_time_limit(0)

C
На сайте с 26.10.2013
Offline
54
#9
Dinozavr:
set_time_limit(0)

Можно уткнуться в таймаут nginx

L
На сайте с 10.02.2015
Offline
261
#10
colorito:
Можно уткнуться в таймаут nginx

Задача будет запускаться на крон.

Можно наткнуться на лимит времени крона у хостера.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий