2017-04-18 72 views
0

是python中的新手。提取下面的代码从在线帖子登录到网站,但出现错误。如何修复这个执行登录网站的python代码

请帮忙解决这个问题,并说明将帮助我

import requests 

with requests.Session() as c: 
    EMAIL = '[email protected]' 
    PASSWORD = '[email protected]' 
    URL = 'https://www.linkedin.com/' 
    c.get(URL) 
    token = c.cookies['CsrfParam'] 
    # This is the form data that the page sends when logging in 
    login_data = {loginCsrfParam:token, session_key:EMAIL, session_password:PASSWORD} 
    # Authenticate 
    r = c.post(URL, data=login_data) 
    # Try accessing a page that requires you to be logged in 
    r = c.get('https://www.linkedin.com/feed/') 
    print r.content 

我坚持下面的错误:

C:\Python27>python website.py 
Traceback (most recent call last): 
    File "website.py", line 8, in <module> 
    token = c.cookies['CsrfParam'] 
    File "C:\Python27\lib\site-packages\requests\cookies.py", line 329, in __getitem__ 
    return self._find_no_duplicates(name) 
    File "C:\Python27\lib\site-packages\requests\cookies.py", line 400, in _find_no_duplicates 
    raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path)) 
KeyError: "name='CsrfParam', domain=None, path=None" 

回答

0

你得到错误的原因是,你调用一个来自列表中的值为空。要调用列表中的第一个项目,可以使用list [0]。在这种情况下,你所调用的列表是空的,所以第一个值不存在,因此错误。

我已经运行了你的代码,没有'recaptcha-token'的@id值,这就是代码返回一个空列表的原因。唯一需要使用recaptcha标记的地方是注册,所以我建议尝试登录而不创建authenticity_token。

+0

嗨!我跑出它令牌。它没有显示任何错误,但它并没有打开网页。我希望此代码打开网页并使用提供的凭据登录。 –

+0

我已经尝试了很多与请求的变化,我不能得到它的工作。根据我的经验,Selenium倾向于使用反编程系统,因此可能需要查看此文章:https://www.quora.com/How-do-I-log-into-Quora-using-Python-since-they -dont-have-an-API。另外还有一个Quora模块:https://pypi.python.org/pypi/quora/但是这不会登录,所以它可能没有你需要的功能。对不起,我忍不住了。 – TLOwater