Я создаю сканер Scrapy, который анализирует данные сайта и вставляет их в DynamoDB с помощью лямбда-функции AWS.
Иногда он работает нормально - возвращает все данные, которые мне нужны, со статусом 200.И иногда он не будет сканироваться из-за статуса 403 (Запрещено).
Я проверил, что в AWS Cloud9 вероятность того, что ошибка 403 Запретится, будет меньше, чем в AWS Lambda: работает 100 функций и только 3 Запрещено в AWS Cloud9, 100 функций запуска и 78 запрещены на AWS Lambda.Поэтому я думаю, что мне следует попробовать что-то сделать с сетевыми настройками AWS Lambda, например, подключить прокси-сервер или что-то еще, но как я могу это сделать?
Я уже попробовал настройки для сканера, например:
process = CrawlerProcess({
'USER_AGENT':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10',
'ROBOTSTXT_OBEY':False,
'DOWNLOAD_DELAY': random.randint(1,10),
'DOWNLOAD_TIMEOUT': random.randint(80,150),
'REDIRECT_ENABLED':False,
'SPIDER_MIDDLEWARES' : {
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware':True
}
})
ранее настройки были:
process = CrawlerProcess({
'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
})
но это не имеет значения: все еще хорошо работает на cloud9, иногда (редко) хорошо на AWS Lambda
UPD: я обнаружил, чтоя получаю 403 запрещенного статуса в дневное время (с 8:00 до 22:00), а в ночное время я в основном получаю статус 200 нормально, поэтому я думаю, что это из-за разрешений сайта разрешать и запрещать роботов в разные периоды дня,но почему запуск одного и того же сценария через AWS cloud9 в основном работает хорошо даже в дневное время, а AWS lambda в основном не работает?
, заранее извиняюсь за грамматику