Nano Hash - криптовалюты, майнинг, программирование

Запросы Python и robots.txt

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

Я использую python с запросами и BeautifulSoup для очистки данных, но когда я пытаюсь получить содержимое веб-сайта с помощью запросов, я сталкиваюсь со следующим:

'<html><head><META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"></head><iframe src="/_Incapsula_Resource?CWUDNSAI=9_4E402615&incident_id=133000790078576866-343390778581910775&edet=12&cinfo=4bb304cac75381e904000000" frameborder=0 width="100%" height="100%" marginheight="0px" marginwidth="0px">Request unsuccessful. Incapsula incident ID: 133000790078576866-343390778581910775</iframe></html>'

Я провел небольшое исследование, и похоже, что меня останавливает следующее: http://www.robotstxt.org/meta.html

Можно ли как-нибудь убедить веб-сайт, что я не злонамеренный робот? Это скрипт, который я запускаю примерно 1 раз в день на одном бите исходного кода, поэтому я никоим образом не являюсь обузой для их серверов. Просто кто-то со сценарием, чтобы упростить задачу :)

РЕДАКТИРОВАТЬ: пытался переключиться на механизацию и игнорировать robots.txt таким образом, но я не получаю ответ 403 Forbidden. Я предполагаю, что они изменили свою позицию в отношении парсинга и еще не обновили свои TOS. Пора переходить к плану Б, больше не использовать веб-сайт, если у кого-то нет других идей.


  • вы можете попробовать вставить обычный пользовательский агент браузера в заголовок вашего запроса 10.11.2013
  • Добавление действительного реферера также может помочь. 10.11.2013
  • Может быть, пришло время просмотреть Условия использования веб-сайта, чтобы увидеть, были ли там изменения — вы уверены, что владелец веб-сайта хочет разрешить парсинг вашего сайта? В TOS есть нечто большее, чем просто нагрузка на сервер. 10.11.2013
  • Да, я проверял ТОС. Они запрещают любой доступ быстрее, чем человек может сделать в веб-браузере: You agree not to use or launch any automated system, including without limitation, "robots," "spiders," "offline readers," etc. , that accesses the Service in a manner that sends more request messages to the Company servers than a human can reasonably produce in the same period of time by using a conventional on-line web browser Я отправляю один запрос в день, поэтому я думаю, что попадаю в юридически приемлемую зону. 10.11.2013
  • Вы получаете такое же сообщение, если пытаетесь зайти на сайт через браузер? Кроме того, что говорит файл robots.txt? В любом случае robots.txt и метатег robots не могут предотвратить загрузку вашего бота. 11.11.2013
  • Я могу использовать веб-сайт как обычно с любым браузером. Я только что проверил robots.txt, и он гласит: 12.11.2013

Ответы:


1

Скорее всего, Сервер проверяет user-agent и запрещает доступ к user-agent по умолчанию, используемому ботами.

Например, requests задает user-agent что-то вроде python-requests/2.9.1.

Вы можете указать заголовки самостоятельно.

url = "https://google.com"
UAS = ("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1", 
       "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0",
       "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0",
       "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
       "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36",
       "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36",
       )

ua = UAS[random.randrange(len(UAS))]

headers = {'user-agent': ua}
r = requests.get(url, headers=headers)
06.04.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..