python tornado linkedin auth

时间:2015-03-17 11:14:58

标签: python tornado

我想对linkedin.com进行身份验证并获取一些内容

我使用requests python模块并执行以下操作:

import requests
from BeautifulSoup import BeautifulSoup

client = requests.Session()

HOMEPAGE_URL = 'https://www.linkedin.com'
LOGIN_URL = HOMEPAGE_URL + '/uas/login-submit'

html = client.get(HOMEPAGE_URL).content
soup = BeautifulSoup(html)
csrf = soup.find(id="loginCsrfParam-login")['value']

login_information = {
    'session_key':'my_login',
    'session_password':'my_password',
    'loginCsrfParam': csrf,
}

client.post(LOGIN_URL, data=login_information)

content = client.get(HOMEPAGE_URL + 'vsearch/c').content

而且,得到了内容,好吧,

但是,现在我想用龙卷风框架做同样的工作

我以类似的方式得到loginCsrfParam并发帖请求:

login_information = {
    'session_key':'my_login',
    'session_password':'my_password',
    'loginCsrfParam':csrf
}

body = urllib.urlencode(login_information)
http_client.fetch(LOGIN_URL,
          handle_request_post,
          method='POST', 
          headers=None,
          body=body)

到达回复后

http_client.fetch(HOMEPAGE_URL + '/vsearch/c', 
          handle_request_get_content,
          method = 'GET')

但我只是一个登录页面

出了什么问题?

1 个答案:

答案 0 :(得分:0)

Tornado的AsyncHTTPClient没有任何会话概念;每个请求都是独立的。它看起来像requests.Session正在从登录请求转移到vsearch请求,可能是cookie。您需要处理登录请求中的Set-Cookie标头,并将cookie转移到以下任何请求(可能使用http.cookiejar模块)