У меня есть служба сокращения URL-адресов / анализа трафика, размещенная в проекте Google App Engine (GAE) в Google Cloud (GC). Когда URL-адрес отправляется для сокращения, он выполняет Python urllib2.urlopen для извлечения страницы и получения ее заголовка, который используется для создания сообщения в социальной сети, содержащего сокращенную ссылку. Некоторые сайты возвращают 403 Forbidden для команды urllib2.urlopen и в результате не могут сгенерировать тело сообщения в социальной сети из заголовка страницы. Обратите внимание, что это происходит только при попытке загрузить страницу, чтобы получить заголовок страницы; сгенерированный сокращенный URL-адрес правильно работает в моем браузере и правильно отображает 302-е страницы.
Я предполагаю, что запросы страниц, поступающие из диапазонов IP-адресов GC, заносятся в черный список сайтов, на которые я пытаюсь установить ссылку, как источник возможного бота или другого нечеловеческого или вредоносного трафика.
Есть ли у GC служба белого списка, к которой я мог бы обратиться, или это вызвано чем-то другим?
Согласно Исходящие запросы, App Engine использует службу URL Fetch для отправки исходящих запросов. Запросы от вашего приложения фактически передаются через службу Google URL Fetch. Другие сайты часто могут довольно легко определить источник этих запросов. Кроме того, App Engine добавит строку идентификатора в User-Agent
заголовок, чтобы серверы могли идентифицировать запросы App Engine в соответствии с Заголовки запроса.
Нет доступной службы белого списка, которая позволила бы приложению App Engine получать URL-адреса и 2xx
ответы. Запрос заданного URL-адреса и анализ HTML-ответа для некоторой части его содержимого обычно называется парсингом, и на большинстве крупных веб-сайтов действуют строгие правила в отношении этого типа взаимодействия.
Facebook Условия использования полностью запретить очистку, указав следующее:
Вы не будете собирать контент или информацию пользователей или иным образом получать доступ к Facebook с использованием автоматизированных средств (таких как сборщики-боты, роботы, пауки или скреперы) без нашего предварительного разрешения.
У Facebook есть свои Graph API который является основным способом получения данных в социальной сети Facebook и из нее. Для этого необходимо зарегистрировать у них приложение и получить app secret
. Таким образом вы можете предоставить appsecret_proof
to Graph API вызывает аутентификацию. Затем вы можете использовать URL
по сути, чтобы получить объект Facebook (публикации, комментарии и т. д.), предоставив внешний URL-адрес Facebook.
Большинство других сайтов социальных сетей также имеют свои собственные API. Это потому, что они хотят решить, как внешние приложения, такие как ваше, получают доступ к своему контенту и контенту, предоставленному им их пользователями. Вы должны быть уверены, что соблюдаете условия обслуживания каждого сайта, если хотите получить доступ к их ресурсам.