В Django отключите @login_required для пауков поисковых систем.

Я ищу чистый способ, позволяющий роботам поисковых систем обходить @login_required, просматривая страницы, которые обычно требуют авторизованного пользователя. Я мог бы написать промежуточное программное обеспечение, которое автоматически регистрировало бы поисковые системы в фиктивной учетной записи, но это не совсем то, что я бы назвал чистым. Есть предложения по лучшему решению? Спасибо.


person rfrankel    schedule 11.04.2011    source источник
comment
Было бы полезно уточнить, почему вы хотите это сделать. Например, если вы предоставляете полнотекстовый доступ, который вы хотите использовать для поиска в Google Scholar, но не для обычного пользователя, я считаю, что вы можете сделать это без бана.   -  person Jordan Reiter    schedule 14.09.2011


Ответы (3)


Не делай этого. Это «маскировка», и вы можете быть исключены из индекса Google.

Маскировка относится к практике представления различного контента или URL-адресов пользователям и поисковым системам. Отображение разных результатов на основе пользовательского агента может привести к тому, что ваш сайт будет воспринят как вводящий в заблуждение и удален из индекса Google.

Вместо этого вам необходимо внедрить решение Google First Click Free. В этой настройке первый клик в результатах поиска Google позволяет увидеть весь контент, последующие клики перехватываются. Это можно сделать на основе реферера или на основе файлов cookie. Вы можете прочитать больше о First Click Free здесь:

person Ciaran    schedule 12.04.2011

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

person Daniel Roseman    schedule 11.04.2011
comment
Тривиально для нас, но не для моих пользователей, которые одновременно не являются техническими специалистами и обычно являются институциональными (и, следовательно, во многих случаях не желают даже тривиального нарушения правил). - person rfrankel; 13.04.2011

Я не понимаю. в "@login_required" есть важное слово: "требуется". если это «требуется», это по уважительной причине. Это означает, что для просмотра веб-страницы необходимы ваши учетные данные. Поскольку контент является частным, секретным и т. д.

Если вы хотите, чтобы ваши страницы были доступны через поисковые системы, вы должны сделать их общедоступными, и поэтому вход в систему больше не требуется. Итак, ваше представление не должно быть защищено декоратором @login_required.

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

В противном случае оставлять лазейку для пауков — определенно плохая идея, потому что ваш личный контент больше не будет приватным.

person brunobord    schedule 12.04.2011