2017-01-31 14 views
11

Я ищу, чтобы открыть соединение с python с http://www.horseandcountry.tv, которое принимает мои параметры входа через метод POST. Я хотел бы открыть соединение с этим сайтом, чтобы очистить сайт от всех видео-ссылок (это я также не знаю, как это сделать, но я использую проект для изучения).Создание подключения к сайту подписки в python

Вопрос: как передать свои учетные данные на отдельные страницы веб-сайта? Например, если все, что я хотел сделать, это использовать код python, чтобы открыть окно браузера, указывающее на http://play.horseandcountry.tv/live/ и открыть его, когда я уже зарегистрирован, как мне это сделать?

ответ

7

Насколько я знаю, у вас есть два варианта в зависимости, как вы хотите, чтобы ползать и то, что вам нужно ползать:

1) Используйте urllib. Вы можете выполнить свой запрос POST с необходимыми учетными данными. Это решение низкого уровня, что означает, что это быстро, но не обрабатывает такие вещи высокого уровня, как коды javascript.

2) Использовать selenium. В то время как вы можете имитировать браузер (Chrome, Firefox, другие ..) и запускать действия через ваш код на Python. Затем он намного медленнее, но хорошо работает со слишком «сложными» веб-сайтами.

Что я обычно делаю: попробую первый вариант, и если у вас возникла проблема с уровнем безопасности javascript на веб-сайте, перейдите на вариант 2. Кроме того, селен может открыть реальный веб-браузер со своего рабочего стола и дать вам визуальный ваш отказ.

В любом случае, просто введите «urllib/selenium login to website», и вы найдете то, что вам нужно.

+0

Это звучит как селен будет делать именно то, что я после этого, так что это, безусловно, правильный ответ. В конце концов я хотел бы запустить его как дополнение kodi на малине Pi, поэтому не будет доступа к этой библиотеке! Ill исследования urllib более подробно, как я надеюсь, я могу достичь того, что я ищу с этим в одиночку! Спасибо – user2145312

+0

Как уже упоминалось, запросы выполняют эту работу (например, urllib). Я уже провел селен на малине pi, попробуйте использовать PhantomJS в качестве веб-браузера (без графического интерфейса), чтобы сэкономить некоторые вычислительные ресурсы. – debzsud

1

Если вы хотите, чтобы избежать использования Selenium (открытие веб-браузеры), вы можете пойти на просьбы, он может войти в веб-сайт и захватить все, что вам нужно в фоновом режиме.

Вот как вы можете зайти на этот сайт с запросами.

import requests 
from bs4 import BeautifulSoup 

#Login Form Data 
payload = { 
    'account_email': 'your_email', 
    'account_password': 'your_passowrd', 
    'submit': 'Sign In' 
} 

with requests.Session() as s: 
    #Login to the website. 
    response = s.post('https://play.horseandcountry.tv/login/', data=payload) 

    #Check if logged in successfully 
    soup = BeautifulSoup(response.text, 'lxml') 
    logged_in = soup.find('p', attrs={'class': 'navbar-text pull-right'}) 
    print s.cookies 
    print response.status_code 
    if logged_in.text.startswith('Logged in as'): 
     print 'Logged In Successfully!' 

Если вам нужны объяснения этого, вы можете проверить это answer или просит documentation

 Смежные вопросы

  • Нет связанных вопросов^_^