Войдите в Google, используя Python

Я уже некоторое время пытаюсь войти в свою учетную запись Google и загрузить файл из нее без использования каких-либо внешних библиотек. Я конкретно говорю о Google Finance ( https://www.google.com/finance). Все, что я хочу сделать, это войти в систему и загрузить мое портфолио (после того, как вы войдете в систему и перейдете на вкладку "Портфолио"), появится ссылка "Загрузить в электронную таблицу". Но я не могу заставить его работать.

Я видел несколько постов о подобных проблемах, но ни один из них не помог мне.

Вот код, который у меня есть сейчас:

import urllib, urllib2, cookielib

#Gets the current directory
output_path = os.getcwd()

def make_url(ticker_symbol):
    return base_url + ticker_symbol

def make_filename(ticker_symbol):
    return output_path + "\\" + ticker_symbol + ".csv"

# Login page for Google Finance
login_url = "https://accounts.google.com/ServiceLogin?service=finance&passive=1209600&continue=https://www.google.com/finance&followup=https://www.google.com/finance"

# Google Finance portfolio Download url (works after you signed in)
download_url = "https://www.google.com/finance/portfolio?pid=1&output=csv&action=viewt&ei=ypZyUZi_EqGAwAP5Vg"

username = 'my_username'
password = 'my_password'

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'username' : username, 'j_password' : password})
opener.open(login_url, login_data)

# Download the file
try:
    urllib.urlretrieve(download_url, make_filename("My_portfolio"))
except urllib.ContentTooShortError as e:
    outfile = open(make_filename("My_portfolio"), "w")
    outfile.write(e.content)
    outfile.close()

Что я делаю неправильно?

Большое спасибо!!

1 ответ

Автор упомянутого вами сценария с тех пор обновил указанные сценарии. Эти сценарии разработаны специально для gVoice, но я уверен, что их можно использовать в качестве примера для ваших нужд с gFinance.

Новые скрипты находятся на GitHub.

Другие вопросы по тегам