Как передать свой идентификатор и пароль на веб-сайт в Python с помощью Google App Engine?

1

Вот фрагмент кода, который я использую для получения HTML-кода (кода) веб-страницы по его URL-адресу с помощью Google App Engine:

from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
   print "content-type: text/plain"
   print
   print result.content

Здесь все хорошо, но иногда мне нужно получить HTML-источник страницы с сайта, на котором я зарегистрирован, и могу получить доступ только к этой странице, если сначала передаю свой ID и пароль. (Это может быть любой сайт, на самом деле, как и любой почтовый аккаунт, например Yahoo: https://login.yahoo.com/config/mail?.src=ym&.intl=us или любой другой сайт, на котором пользователи бесплатные учетные записи, сначала регистрируясь там). Могу ли я как-то это сделать на Python (через "Google App Engine" )?

Теги:
google-app-engine
passwords

2 ответа

3
Лучший ответ

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

  • 1
    Алекс, еще раз спасибо за твой ответ, но я просто не понимаю: (1) «Вы можете проверить код состояния HTTP 401» - где мне нужно проверять этот код статуса HTTP? Я просмотрел исходный HTML-код той страницы Yahoo, о которой упоминал в своем вопросе, и не нашел там ничего, связанного с кодом статуса HTTP; (2) «предоставить вид HTTP-авторизации (базовый, дайджест и т. Д.), Который запрашивает сайт» - опять же, как мне это сделать ?;
  • 1
    (3) Ссылка, которую вы мне дали, ведет к какой-то документации робота (робота CheckUpDown). Как будто вы предлагаете мне использовать этого робота? Если да, то, боюсь, я не смогу использовать GAE в этом случае;
Показать ещё 3 комментария
1

Как сказал Алекс, вы можете проверить код состояния и посмотреть, какой тип авторизации он хочет, но вы не можете его обобщить, так как некоторые сайты не будут давать никаких подсказок или разрешать вход через нестандартную форму, в тех случаях, когда вы можете необходимо автоматизировать процесс входа в систему с использованием форм, для чего вы можете использовать библиотеку, например twill (http://twill.idyll.org/) или ввести код для конкретной формы для каждого сайта.

  • 0
    Привет Анураг Униял! Благодарю за ваш ответ. Я думаю, что мне здесь не хватает некоторых основ: (1) «Как сказал Алекс, вы можете проверить код состояния и посмотреть, какой тип авторизации ему нужен» - я не знаю, как это сделать;
  • 0
    (2) «... возможно, вам придется автоматизировать процесс входа в систему с помощью форм, для этого вы можете использовать библиотеку, например, twill ...» - можно ли будет это сделать в «Google App Engines»? Я имею в виду, не будет ли использование твилла конфликтовать с "Google App Engines"?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню