2016-10-22 2 views
1

Я пытаюсь написать скрипт, который войдет в мою учетную запись FT.com и вытащит некоторые данные для меня.Вход в FT.com с запросами Python

Первый барьер, очевидно, входит в систему. Я использую для этого библиотеку запросов Pythons.

Вот мой код:

#!/usr/bin/env python 
import requests 


# log into FT website 
log_in_url = 'https://accounts.ft.com/login' 
my_email = '[email protected]' 
my_pass = 'mypassword' 
data = {'email': my_email, 
     'password': my_pass, 
} 

with requests.Session() as session: 
    log_in_request = session.post(log_in_url, data=data) 
    # prints log-in page with error about contacting cus. service 
    print log_in_request.content 

Он просто перенаправляет меня обратно на страницу входа в систему. Он не говорит «неправильные данные» или что-то еще (они определенно правильны). Это просто не позволит мне войти. Я подозреваю, что что-то не так с моим POST-запросом - вроде я пропускаю заголовки или файлы cookie или что-то в этом роде.

Кто-нибудь знает, что может быть?

Cheers,

Дин

+0

Я предлагаю вам открыть браузер инструменты веб-разработчика, проверьте, какие заголовки/данные передаются во время входа в систему, фигурное откуда требуется, затем попытайтесь воспроизвести его с запросами – agg3l

+0

Попробуйте сначала перейти на страницу с объектом Session. –

+0

Пробовал оба из них и миллион других вещей. На этом сайте ничего не работает. –

ответ

2

При копировании оригинального контента или царапать, не ничтожна объемы данных с сайта футов, вы будете правильно быть заблокирован, как вы будете нарушать их Т & Cs (не упоминать закон об авторском праве).

FT частично финансируется за счет рекламы. Если вы обойдете их, используя Python, вы разрушите легитимный источник дохода.

Я использую этот скрипт, чтобы вытащить свои наблюдатели в Excel, который я использовал, используя copy/paste. Я не использую его для аналитики или для чтения статей. Я читал FT через браузер, который ежедневно показывал достоверную рекламу рекламы.

Пожалуйста, не злоупотребляйте этим. Если вы это сделаете, это, скорее всего, приведет к тому, что каждый платящий абонент будет заблокирован от выполнения даже незначительных объемов навигации на Python.

from robobrowser import RoboBrowser 

browser = RoboBrowser(history=True) 

url='https://accounts.ft.com/login?location=https%3A%2F%2Fwww.ft.com%2F' 

browser.open(url) 
form=browser.get_form() 
form['email']="" 
form['password']="" 
browser.session.headers['Referer'] = url 
browser.submit_form(form) 

Существует программа разработчика FT, если вы хотите выполнить Datamining и так далее: https://developer.ft.com/

+0

Спасибо за ваш ответ! У меня нет нулевого намерения нарушить закон об авторском праве или вообще использовать этот сценарий вообще. Мое намерение состоит в том, чтобы просто загрузить ежедневную газету в формате PDF (которая предлагается FT как кнопка) и отправить по электронной почте, когда она будет готова. Я сделаю это и посмотрю, работает ли это. –

+0

Кажется разумным. Пожалуйста, вы можете укрепить меня и решить вопрос? Мои priveleges - мусор на stackoverflow на данный момент ... – langbourne

+0

(при условии, что это работает для вас, конечно!) – langbourne